Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- enum AST
- {
- Number(n:Float);
- Sum(n1:AST, n2:AST);
- Mult(n1:AST, n2:AST);
- }
- class ASTTools
- {
- public static function execute(a:AST)
- {
- return switch(a)
- {
- case Number(n): n;
- case Sum(n1, n2): execute(n1) + execute(n2);
- case Mult(n1, n2): execute(n1) * execute(n2);
- }
- }
- }
- class Main
- {
- static function main()
- {
- trace(ASTTools.execute( Sum( Mult(Number(20), Number(2)), Number(2) ) ));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement