浏览代码

Patched issues with communication statements

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@6506 8c9fc860-2736-0410-a75d-ab315db34111
felixf 9 年之前
父节点
当前提交
1e2f0afc15
共有 1 个文件被更改,包括 4 次插入2 次删除
  1. 4 2
      source/FoxParser.Mod

+ 4 - 2
source/FoxParser.Mod

@@ -893,6 +893,7 @@ TYPE
 			caseStatement: SyntaxTree.CaseStatement;  whileStatement: SyntaxTree.WhileStatement;  repeatStatement: SyntaxTree.RepeatStatement;  forStatement: SyntaxTree.ForStatement;
 			identifier: SyntaxTree.Identifier;  loopStatement: SyntaxTree.LoopStatement;  returnStatement: SyntaxTree.ReturnStatement;  awaitStatement: SyntaxTree.AwaitStatement;
 			qualifiedType: SyntaxTree.QualifiedType; code : SyntaxTree.Code; position: LONGINT; result: BOOLEAN;
+			commToken: Scanner.Token;
 		BEGIN
 			IF Trace THEN S( "Statement" ) END;
 			CASE symbol.token OF
@@ -904,9 +905,10 @@ TYPE
 						statement := SyntaxTree.NewAssignment( position, designator, expression,outer );
 						CommentStatement(statement);
 					ELSIF Peek(Scanner.ExclamationMark) OR Peek(Scanner.Questionmark) OR Peek(Scanner.LessLess) OR Peek(Scanner.GreaterGreater) THEN
-						expression := Expression();
-						statement := SyntaxTree.NewCommunicationStatement(position, symbol.token, designator, expression, outer);
+						commToken := symbol.token; 
 						NextSymbol;
+						expression := Expression();
+						statement := SyntaxTree.NewCommunicationStatement(position, commToken, designator, expression, outer);
 						CommentStatement(statement);
 					ELSE
 						caller := SyntaxTree.NewProcedureCallStatement(designator.position, designator,outer);