2
0
Эх сурвалжийг харах

syntax error diagnostic tune up

Vladislav Folts 11 жил өмнө
parent
commit
59fc0fe073
2 өөрчлөгдсөн 6 нэмэгдсэн , 4 устгасан
  1. 1 1
      src/grammar.js
  2. 5 3
      test/test_unit.js

+ 1 - 1
src/grammar.js

@@ -147,7 +147,7 @@ var fpSection = and(optional(literal("VAR")), ident, repeat(and(",", ident)), ":
 var formalParameters = and(
           "("
         , optional(context(and(fpSection, repeat(and(";", fpSection))), Context.ProcParams))
-        , ")"
+        , required( ")" )
         , optional(and(":", qualident)));
 
 var procedureType = and("PROCEDURE"

+ 5 - 3
test/test_unit.js

@@ -1151,7 +1151,7 @@ var testSuite = {
          "PROCEDURE p(a: ARRAY OF A); BEGIN END p"
         ),
     fail(["PROCEDURE p(a: ARRAY OF ARRAY 3 OF INTEGER); BEGIN END p",
-          "not parsed"]
+          "')' expected"]
         )
     ),
 "non-open array type as procedure parameter": testWithContext(
@@ -1165,7 +1165,7 @@ var testSuite = {
          "PROCEDURE p(); VAR a: ARRAY 2 OF INTEGER; BEGIN pa(a) END p"
          ),
     fail(["PROCEDURE p(a: ARRAY 3 OF INTEGER); BEGIN END p",
-          "not parsed"],
+          "')' expected"],
          ["PROCEDURE p(a: A): INTEGER; BEGIN RETURN a[2] END p",
           "index out of bounds: maximum possible index is 1, got 2"],
          ["PROCEDURE p(); VAR a: ARRAY 1 OF INTEGER; BEGIN pa(a) END p",
@@ -1327,7 +1327,9 @@ var testSuite = {
          ["MODULE m; TYPE T = RECORD END END m.",
           "';' expected"],
          ["MODULE m; VAR v: INTEGER END m.",
-          "';' expected"])
+          "';' expected"],
+         ["MODULE m; PROCEDURE p(INTEGER) END m.",
+          "')' expected"])
     )
 };