Advertisement

Parsing expression with functions -- AS vs boost

Started by April 22, 2013 09:45 AM
1 comment, last by WitchLord 11 years, 8 months ago

Thing is , I started writing some fancy functions for map modification, which would be called by various Game parts, especially the console and AS :

TileContainer* create(int x , int y , Tile::TileType tt );

TileContainer* copy(TileContainer* tc1 , TileContainer* tc2 );

TileContainer* embed(TileContainer* tc1 , TileContainer* tc2 );

TileContainer* rotate90(TileContainer* tc );

TileContainer* reflectX(TileContainer* tc);

TileContainer* reflectY(TileContainer* tc);

TileContainer* tilePermute(TileContainer* t, int x , int y , Tile::TileType tt );

TileContainer* clone(TileContainer* tc );

TileContainer* tileReplace( TileContainer* tc , Tile::TileType tt1, Tile::TileType tt2 );

That's not only such set of functions , but it illustrates well the problem : How to compute any expression like f(g(h(4 + 5 ) ) ) for which some of f,g,h ... comes from the binary some from AS ? How do I extend that so I have mini-language at Console ? The first concrete question is : How do I get abstract tree of such expr ? Do I use the AS or use some 3rd lib like boost and there get parser/ lexer for it ?

ExecuteString function in ScriptHelper addon seems to be what you are look for.

http://www.angelcode.com/angelscript/sdk/docs/manual/doc_addon_helpers.html#doc_addon_helpers_1

Advertisement
In addition to that I recommend that you take a look at the 'console' sample in the AngelScript SDK. It shows one way that you may implement an in-game console with support for executing expressions, etc.

AngelCode.com - game development and more - Reference DB - game developer references
AngelScript - free scripting library - BMFont - free bitmap font generator - Tower - free puzzle game

This topic is closed to new replies.

Advertisement