Browse Source

Fixed syntax and diagnostics location

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@8648 8c9fc860-2736-0410-a75d-ab315db34111
negelef 6 years ago
parent
commit
a46db6a629
1 changed files with 3 additions and 3 deletions
  1. 3 3
      source/FoxParser.Mod

+ 3 - 3
source/FoxParser.Mod

@@ -90,7 +90,7 @@ CONST
 						['else' StatementSequence]
 						['else' StatementSequence]
 						'end'
 						'end'
 					| 'with' Identifier ':' QualifiedIdentifier 'do' StatementSequence 
 					| 'with' Identifier ':' QualifiedIdentifier 'do' StatementSequence 
-						{'|' Identifier ':' QualifiedIdentifier 'do' StatementSequence}
+						{['|' Identifier ':'] QualifiedIdentifier 'do' StatementSequence}
 						[else StatementSequence]
 						[else StatementSequence]
 						 'end'
 						 'end'
 					| 'case' Expression 'of' ['|'] Case {'|' Case} ['else' StatementSequence] 'end'
 					| 'case' Expression 'of' ['|'] Case {'|' Case} ['else' StatementSequence] 'end'
@@ -1088,7 +1088,7 @@ TYPE
                         ['else' StatementSequence]
                         ['else' StatementSequence]
                         'end'
                         'end'
                      | 'with' Identifier ':' QualifiedIdentifier 'do' StatementSequence 
                      | 'with' Identifier ':' QualifiedIdentifier 'do' StatementSequence 
-                         {'|' Identifier ':' QualifiedIdentifier 'do' StatementSequence}
+                         {'|' [Identifier ':'] QualifiedIdentifier 'do' StatementSequence}
                 				[else StatementSequence]
                 				[else StatementSequence]
                          'end'
                          'end'
                      | 'case' Expression 'of' ['|'] Case {'|' Case} ['else' StatementSequence] 'end'
                      | 'case' Expression 'of' ['|'] Case {'|' Case} ['else' StatementSequence] 'end'
@@ -1187,7 +1187,7 @@ TYPE
 						withStatement.AddWithPart(withPart);
 						withStatement.AddWithPart(withPart);
 						qualifiedIdentifier := QualifiedIdentifier();
 						qualifiedIdentifier := QualifiedIdentifier();
 						IF Optional(Scanner.Colon) THEN (* compatibility with old format *)
 						IF Optional(Scanner.Colon) THEN (* compatibility with old format *)
-							Basic.Warning(diagnostics, scanner.source^, position, "deprecate form of with statement, remove the repeated variable");
+							Basic.Warning(diagnostics, scanner.source^, qualifiedIdentifier.position, "deprecated form of with statement, remove the repeated variable");
 							qualifiedIdentifier := QualifiedIdentifier();
 							qualifiedIdentifier := QualifiedIdentifier();
 						END;
 						END;
 						qualifiedType := SyntaxTree.NewQualifiedType(qualifiedIdentifier.position, currentScope, qualifiedIdentifier);
 						qualifiedType := SyntaxTree.NewQualifiedType(qualifiedIdentifier.position, currentScope, qualifiedIdentifier);