[Scummvm-git-logs] scummvm master -> 9958416df9742edc30abd9c90194f57b2ce50f53

sev- noreply at scummvm.org
Wed May 29 21:10:33 UTC 2024


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
9958416df9 DIRECTOR: LINGO: Simplified AST visitor code


Commit: 9958416df9742edc30abd9c90194f57b2ce50f53
    https://github.com/scummvm/scummvm/commit/9958416df9742edc30abd9c90194f57b2ce50f53
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-05-29T23:10:20+02:00

Commit Message:
DIRECTOR: LINGO: Simplified AST visitor code

Changed paths:
    engines/director/lingo/lingo-ast.h


diff --git a/engines/director/lingo/lingo-ast.h b/engines/director/lingo/lingo-ast.h
index d640cbc3fe6..df828a4972a 100644
--- a/engines/director/lingo/lingo-ast.h
+++ b/engines/director/lingo/lingo-ast.h
@@ -215,6 +215,12 @@ public:
 	virtual bool visitChunkExprNode(ChunkExprNode *node) = 0;
 };
 
+#define VISITNODE(nodeName) \
+		storeStart(); \
+		bool res = visitor->visit ## nodeName(this); \
+		storeEnd(); \
+		return res
+
 /* Node */
 
 struct Node {
@@ -273,10 +279,7 @@ struct ScriptNode : Node {
 		deleteList(children);
 	}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitScriptNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(ScriptNode);
 	}
 };
 
@@ -293,10 +296,7 @@ struct FactoryNode : Node {
 		deleteList(methods);
 	}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitFactoryNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(FactoryNode);
 	}
 };
 
@@ -315,10 +315,7 @@ struct HandlerNode : Node {
 		deleteList(stmts);
 	}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitHandlerNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(HandlerNode);
 	}
 };
 
@@ -336,10 +333,7 @@ struct CmdNode : StmtNode {
 		deleteList(args);
 	}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitCmdNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(CmdNode);
 	}
 };
 
@@ -356,10 +350,7 @@ struct PutIntoNode : StmtNode {
 		delete var;
 	}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitPutIntoNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(PutIntoNode);
 	}
 };
 
@@ -376,10 +367,7 @@ struct PutAfterNode : StmtNode {
 		delete var;
 	}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitPutAfterNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(PutAfterNode);
 	}
 };
 
@@ -396,10 +384,7 @@ struct PutBeforeNode : StmtNode {
 		delete var;
 	}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitPutBeforeNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(PutBeforeNode);
 	}
 };
 
@@ -416,10 +401,7 @@ struct SetNode : StmtNode {
 		delete val;
 	}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitSetNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(SetNode);
 	}
 };
 
@@ -433,10 +415,7 @@ struct GlobalNode : StmtNode {
 		deleteList(names);
 	}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitGlobalNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(GlobalNode);
 	}
 };
 
@@ -450,10 +429,7 @@ struct PropertyNode : StmtNode {
 		deleteList(names);
 	}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitPropertyNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(PropertyNode);
 	}
 };
 
@@ -467,10 +443,7 @@ struct InstanceNode : StmtNode {
 		deleteList(names);
 	}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitInstanceNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(InstanceNode);
 	}
 };
 
@@ -487,10 +460,7 @@ struct IfStmtNode : StmtNode {
 		deleteList(stmts);
 	}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitIfStmtNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(IfStmtNode);
 	}
 };
 
@@ -509,10 +479,7 @@ struct IfElseStmtNode : StmtNode {
 		deleteList(stmts2);
 	}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitIfElseStmtNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(IfElseStmtNode);
 	}
 };
 
@@ -529,10 +496,7 @@ struct RepeatWhileNode : LoopNode {
 		deleteList(stmts);
 	}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitRepeatWhileNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(RepeatWhileNode);
 	}
 };
 
@@ -554,10 +518,7 @@ struct RepeatWithToNode : LoopNode {
 		deleteList(stmts);
 	}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitRepeatWithToNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(RepeatWithToNode);
 	}
 };
 
@@ -576,10 +537,7 @@ struct RepeatWithInNode : LoopNode {
 		deleteList(stmts);
 	}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitRepeatWithInNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(RepeatWithInNode);
 	}
 };
 
@@ -589,10 +547,7 @@ struct NextRepeatNode : StmtNode {
 	NextRepeatNode() : StmtNode(kNextRepeatNode) {}
 	virtual ~NextRepeatNode() {}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitNextRepeatNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(NextRepeatNode);
 	}
 };
 
@@ -602,10 +557,7 @@ struct ExitRepeatNode : StmtNode {
 	ExitRepeatNode() : StmtNode(kExitRepeatNode) {}
 	virtual ~ExitRepeatNode() {}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitExitRepeatNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(ExitRepeatNode);
 	}
 };
 
@@ -615,10 +567,7 @@ struct ExitNode : StmtNode {
 	ExitNode() : StmtNode(kExitNode) {}
 	virtual ~ExitNode() {}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitExitNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(ExitNode);
 	}
 };
 
@@ -632,10 +581,7 @@ struct ReturnNode : StmtNode {
 			delete expr;
 	}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitReturnNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(ReturnNode);
 	}
 };
 
@@ -653,10 +599,7 @@ struct TellNode : StmtNode {
 		deleteList(stmts);
 	}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitTellNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(TellNode);
 	}
 };
 
@@ -673,10 +616,7 @@ struct WhenNode : StmtNode {
 		delete code;
 	}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitWhenNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(WhenNode);
 	}
 };
 
@@ -690,10 +630,7 @@ struct DeleteNode : StmtNode {
 		delete chunk;
 	}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitDeleteNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(DeleteNode);
 	}
 };
 
@@ -707,10 +644,7 @@ struct HiliteNode : StmtNode {
 		delete chunk;
 	}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitHiliteNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(HiliteNode);
 	}
 };
 
@@ -724,10 +658,7 @@ struct AssertErrorNode : StmtNode {
 		delete stmt;
 	}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitAssertErrorNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(AssertErrorNode);
 	}
 };
 
@@ -739,10 +670,7 @@ struct IntNode : ExprNode {
 	IntNode(int valIn) : ExprNode(kIntNode), val(valIn) {}
 	virtual ~IntNode() {}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitIntNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(IntNode);
 	}
 };
 
@@ -754,10 +682,7 @@ struct FloatNode : ExprNode {
 	FloatNode(double valIn) : ExprNode(kFloatNode), val(valIn) {}
 	virtual ~FloatNode() {}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitFloatNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(FloatNode);
 	}
 };
 
@@ -771,10 +696,7 @@ struct SymbolNode : ExprNode {
 		delete val;
 	}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitSymbolNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(SymbolNode);
 	}
 };
 
@@ -788,10 +710,7 @@ struct StringNode : ExprNode {
 		delete val;
 	}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitStringNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(StringNode);
 	}
 };
 
@@ -805,10 +724,7 @@ struct ListNode : ExprNode {
 		deleteList(items);
 	}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitListNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(ListNode);
 	}
 };
 
@@ -822,10 +738,7 @@ struct PropListNode : ExprNode {
 		deleteList(items);
 	}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitPropListNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(PropListNode);
 	}
 };
 
@@ -842,10 +755,7 @@ struct PropPairNode : ExprNode {
 		delete val;
 	}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitPropPairNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(PropPairNode);
 	}
 };
 
@@ -862,10 +772,7 @@ struct FuncNode : ExprNode {
 		deleteList(args);
 	}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitFuncNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(FuncNode);
 	}
 };
 
@@ -879,10 +786,7 @@ struct VarNode : ExprNode {
 		delete name;
 	}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitVarNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(VarNode);
 	}
 };
 
@@ -896,10 +800,7 @@ struct ParensNode : ExprNode {
 		delete expr;
 	}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitParensNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(ParensNode);
 	}
 };
 
@@ -914,10 +815,7 @@ struct UnaryOpNode : ExprNode {
 		delete arg;
 	}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitUnaryOpNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(UnaryOpNode);
 	}
 };
 
@@ -934,10 +832,7 @@ struct BinaryOpNode : ExprNode {
 		delete b;
 	}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitBinaryOpNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(BinaryOpNode);
 	}
 };
 
@@ -951,10 +846,7 @@ struct FrameNode : ExprNode {
 		delete arg;
 	}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitFrameNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(FrameNode);
 	}
 };
 
@@ -968,10 +860,7 @@ struct MovieNode : ExprNode {
 		delete arg;
 	}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitMovieNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(MovieNode);
 	}
 };
 
@@ -988,10 +877,7 @@ struct IntersectsNode : ExprNode {
 		delete sprite2;
 	}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitIntersectsNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(IntersectsNode);
 	}
 };
 
@@ -1008,10 +894,7 @@ struct WithinNode : ExprNode {
 		delete sprite2;
 	}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitWithinNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(WithinNode);
 	}
 };
 
@@ -1025,10 +908,7 @@ struct TheNode : ExprNode {
 		delete prop;
 	}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitTheNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(TheNode);
 	}
 };
 
@@ -1045,10 +925,7 @@ struct TheOfNode : ExprNode {
 		delete obj;
 	}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitTheOfNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(TheOfNode);
 	}
 };
 
@@ -1064,10 +941,7 @@ struct TheNumberOfNode : ExprNode {
 		delete arg;
 	}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitTheNumberOfNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(TheNumberOfNode);
 	}
 };
 
@@ -1083,10 +957,7 @@ struct TheLastNode : ExprNode {
 		delete arg;
 	}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitTheLastNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(TheLastNode);
 	}
 };
 
@@ -1100,10 +971,7 @@ struct TheDateTimeNode : ExprNode {
 		: ExprNode(kTheDateTimeNode), field(fieldIn), entity(entityIn) {}
 	virtual ~TheDateTimeNode() {}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitTheDateTimeNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(TheDateTimeNode);
 	}
 };
 
@@ -1117,10 +985,7 @@ struct MenuNode : ExprNode {
 		delete arg;
 	}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitMenuNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(MenuNode);
 	}
 };
 
@@ -1137,10 +1002,7 @@ struct MenuItemNode : ExprNode {
 		delete arg2;
 	}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitMenuItemNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(MenuItemNode);
 	}
 };
 
@@ -1154,10 +1016,7 @@ struct SoundNode : ExprNode {
 		delete arg;
 	}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitSoundNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(SoundNode);
 	}
 };
 
@@ -1171,10 +1030,7 @@ struct SpriteNode : ExprNode {
 		delete arg;
 	}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitSpriteNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(SpriteNode);
 	}
 };
 
@@ -1194,10 +1050,7 @@ struct ChunkExprNode : ExprNode {
 		delete src;
 	}
 	virtual bool accept(NodeVisitor *visitor) {
-		storeStart();
-		bool res = visitor->visitChunkExprNode(this);
-		storeEnd();
-		return res;
+		VISITNODE(ChunkExprNode);
 	}
 };
 




More information about the Scummvm-git-logs mailing list