Saving/loading the parse tree as a binary format?

View: New views
2 Messages — Rating Filter:   Alert me  

Saving/loading the parse tree as a binary format?

by dennisf486 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

My partner on this game project expressed some reservations about distributing the game's scripts in human-readable form.  I understand that when Io runs a script, it produces a parse tree first.  I thought, before turning to some kind of half-baked script obfuscation scheme, why not just use Io's parser to turn the script from text into a binary format?

Since Io is so introspective, I would not be surprised if there's probably even a way to do it right from Io code.  So:  Is there a way in Io to save the interpreter's parse tree to disk and reload it later?  How would you do this?  Will it still work if it's loaded from a different computer than the one that created it?  Will it work with 32 vs. 64 bit systems?


Re: Saving/loading the parse tree as a binary format?

by Steve Dekorte :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


On 25 Sep 2009, at 02:14 pm, dennisf486 wrote:

> My partner on this game project expressed some reservations about  
> distributing the game's scripts in human-readable form.  I  
> understand that when Io runs a script, it produces a parse tree  
> first.  I thought, before turning to some kind of half-baked script  
> obfuscation scheme, why not just use Io's parser to turn the script  
> from text into a binary format?
>
> Since Io is so introspective, I would not be surprised if there's  
> probably even a way to do it right from Io code.  So:  Is there a  
> way in Io to save the interpreter's parse tree to disk and reload  
> it later?  How would you do this?  Will it still work if it's  
> loaded from a different computer than the one that created it?  
> Will it work with 32 vs. 64 bit systems?

We may have some old code to do that, but have you considered  
encrypting the source file instead?

Steve