diff --git a/bild.py b/bild.py index c40e19f94..f6a2a8bd6 100755 --- a/bild.py +++ b/bild.py @@ -67,7 +67,7 @@ RUNTIME_TEST_TEMPLATES = { "Java" : uniformpath(JAVA_TARGET)+"/tool/test/org/antlr/v4/test/runtime/java/Java.test.stg", "CSharp" : uniformpath(CSHARP_TARGET)+"/tool/test/org/antlr/v4/test/runtime/csharp/CSharp.test.stg", # "Python2" : uniformpath(PYTHON2_TARGET)+"/tool/test/org/antlr/v4/test/rt/py2/Python2.test.stg", - # "Python3" : uniformpath(PYTHON3_TARGET)+"/tool/test/org/antlr/v4/test/rt/py3/Python3.test.stg", + "Python3" : uniformpath(PYTHON3_TARGET)+"/tool/test/org/antlr/v4/test/runtime/python3/Python3.test.stg", # "NodeJS" : uniformpath(JAVASCRIPT_TARGET)+"/tool/test/org/antlr/v4/test/rt/js/node/NodeJS.test.stg", # "Safari" : uniformpath(JAVASCRIPT_TARGET)+"/tool/test/org/antlr/v4/test/rt/js/safari/Safari.test.stg", # "Firefox" : uniformpath(JAVASCRIPT_TARGET)+"/tool/test/org/antlr/v4/test/rt/js/firefox/Firefox.test.stg", @@ -106,7 +106,7 @@ def compile(): javac(TARGETS[t] + "/tool/src", "out", version="1.6", cp=cp, args=args) # pull in generated runtime tests and runtime test support code for t in RUNTIME_TEST_TEMPLATES: - javac(TARGETS[t] + "/tool/test", "out", version="1.6", cp=cp, args=args) + javac(TARGETS[t] + "/tool/test", "out", version="1.6", cp=cp, args=args, skip=['org/antlr/v4/test/rt']) javac('gen/test/'+t, "out", version="1.6", cp=cp, args=args) @@ -333,11 +333,11 @@ def test(target, juprops, args): skip = [] if target=='Java': # don't test generator - skip = [ "/org/antlr/v4/test/rt/gen/", "TestPerformance.java", "TestGenerator.java" ] + skip = [ "TestPerformance.java", "TestGenerator.java" ] elif target=='Python2': - # need BaseTest located in Py3 target + # need BaseTest located in python3 target base = uniformpath(TARGETS['Python3'] + "/tool/test") - skip = [ "/org/antlr/v4/test/rt/py3/" ] + skip = [ "/org/antlr/v4/test/runtime/python3/" ] javac(base, "out/test/"+target, version="1.6", cp=thisjarwithjunit, args=args, skip=skip) skip = [] elif target=='JavaScript': diff --git a/runtime-testsuite/resources/org/antlr/v4/test/runtime/templates/CompositeParsers/ImportedRuleWithAction.stg b/runtime-testsuite/resources/org/antlr/v4/test/runtime/templates/CompositeParsers/ImportedRuleWithAction.stg index f6b6137ac..c84cfda21 100644 --- a/runtime-testsuite/resources/org/antlr/v4/test/runtime/templates/CompositeParsers/ImportedRuleWithAction.stg +++ b/runtime-testsuite/resources/org/antlr/v4/test/runtime/templates/CompositeParsers/ImportedRuleWithAction.stg @@ -28,5 +28,5 @@ WS : (' '|'\n') -> skip ; // wasn't terminating. @after was injected into M as if it were @members slaveGrammar(grammarName) ::= << parser grammar S; -a @after {int x;} : B; +a @after {} : B; >> diff --git a/runtime-testsuite/resources/org/antlr/v4/test/runtime/templates/LeftRecursion/JavaExpressions.stg b/runtime-testsuite/resources/org/antlr/v4/test/runtime/templates/LeftRecursion/JavaExpressions.stg index 131f8e7a7..b616292d5 100644 --- a/runtime-testsuite/resources/org/antlr/v4/test/runtime/templates/LeftRecursion/JavaExpressions.stg +++ b/runtime-testsuite/resources/org/antlr/v4/test/runtime/templates/LeftRecursion/JavaExpressions.stg @@ -17,18 +17,18 @@ expressionList : e (',' e)* ; e : '(' e ')' - | 'this' + | 'this' | 'super' | INT | ID - | type '.' 'class' + | typespec '.' 'class' | e '.' ID | e '.' 'this' | e '.' 'super' '(' expressionList? ')' | e '.' 'new' ID '(' expressionList? ')' - | 'new' type ( '(' expressionList? ')' | ('[' e ']')+) + | 'new' typespec ( '(' expressionList? ')' | ('[' e ']')+) | e '[' e ']' - | '(' type ')' e + | '(' typespec ')' e | e ('++' | '--') | e '(' expressionList? ')' | ('+'|'-'|'++'|'--') e @@ -59,10 +59,11 @@ e : '(' e ')' |'\<\<=' |'%=') e ; -type: ID +typespec + : ID | ID '[' ']' | 'int' - | 'int' '[' ']' + | 'int' '[' ']' ; ID : ('a'..'z'|'A'..'Z'|'_'|'$')+; INT : '0'..'9'+ ; diff --git a/runtime-testsuite/resources/org/antlr/v4/test/runtime/templates/LeftRecursion/JavaExpressions_12.stg b/runtime-testsuite/resources/org/antlr/v4/test/runtime/templates/LeftRecursion/JavaExpressions_12.stg index 980cee2d9..bf2967a95 100644 --- a/runtime-testsuite/resources/org/antlr/v4/test/runtime/templates/LeftRecursion/JavaExpressions_12.stg +++ b/runtime-testsuite/resources/org/antlr/v4/test/runtime/templates/LeftRecursion/JavaExpressions_12.stg @@ -3,7 +3,7 @@ import "JavaExpressions.stg" Input() ::= "new T[((n-1) * x) + 1]" Output() ::= << -(s (e new (type T) [ (e (e ( (e (e ( (e (e n) - (e 1)) )) * (e x)) )) + (e 1)) ]) \)<\n> +(s (e new (typespec T) [ (e (e ( (e (e ( (e (e n) - (e 1)) )) * (e x)) )) + (e 1)) ]) \)<\n> >> Errors() ::= "" diff --git a/runtime-testsuite/resources/org/antlr/v4/test/runtime/templates/LeftRecursion/JavaExpressions_7.stg b/runtime-testsuite/resources/org/antlr/v4/test/runtime/templates/LeftRecursion/JavaExpressions_7.stg index 0ab2a022e..51ef17921 100644 --- a/runtime-testsuite/resources/org/antlr/v4/test/runtime/templates/LeftRecursion/JavaExpressions_7.stg +++ b/runtime-testsuite/resources/org/antlr/v4/test/runtime/templates/LeftRecursion/JavaExpressions_7.stg @@ -3,7 +3,7 @@ import "JavaExpressions.stg" Input() ::= "(T)x" Output() ::= << -(s (e ( (type T) ) (e x)) \)<\n> +(s (e ( (typespec T) ) (e x)) \)<\n> >> Errors() ::= "" diff --git a/runtime-testsuite/resources/org/antlr/v4/test/runtime/templates/LeftRecursion/JavaExpressions_8.stg b/runtime-testsuite/resources/org/antlr/v4/test/runtime/templates/LeftRecursion/JavaExpressions_8.stg index 3f0cbb62c..9d5f0ed4b 100644 --- a/runtime-testsuite/resources/org/antlr/v4/test/runtime/templates/LeftRecursion/JavaExpressions_8.stg +++ b/runtime-testsuite/resources/org/antlr/v4/test/runtime/templates/LeftRecursion/JavaExpressions_8.stg @@ -3,7 +3,7 @@ import "JavaExpressions.stg" Input() ::= "new A().b" Output() ::= << -(s (e (e new (type A) ( )) . b) \)<\n> +(s (e (e new (typespec A) ( )) . b) \)<\n> >> Errors() ::= "" diff --git a/runtime-testsuite/resources/org/antlr/v4/test/runtime/templates/LeftRecursion/JavaExpressions_9.stg b/runtime-testsuite/resources/org/antlr/v4/test/runtime/templates/LeftRecursion/JavaExpressions_9.stg index a4066d565..1c11b116b 100644 --- a/runtime-testsuite/resources/org/antlr/v4/test/runtime/templates/LeftRecursion/JavaExpressions_9.stg +++ b/runtime-testsuite/resources/org/antlr/v4/test/runtime/templates/LeftRecursion/JavaExpressions_9.stg @@ -3,7 +3,7 @@ import "JavaExpressions.stg" Input() ::= "(T)t.f()" Output() ::= << -(s (e (e ( (type T) ) (e (e t) . f)) ( )) \)<\n> +(s (e (e ( (typespec T) ) (e (e t) . f)) ( )) \)<\n> >> Errors() ::= "" diff --git a/runtime-testsuite/resources/org/antlr/v4/test/runtime/templates/LeftRecursion/MultipleAlternativesWithCommonLabel.stg b/runtime-testsuite/resources/org/antlr/v4/test/runtime/templates/LeftRecursion/MultipleAlternativesWithCommonLabel.stg index 8521f7afb..1fc0c9700 100644 --- a/runtime-testsuite/resources/org/antlr/v4/test/runtime/templates/LeftRecursion/MultipleAlternativesWithCommonLabel.stg +++ b/runtime-testsuite/resources/org/antlr/v4/test/runtime/templates/LeftRecursion/MultipleAlternativesWithCommonLabel.stg @@ -19,16 +19,16 @@ Rule() ::= "s" grammar(grammarName) ::= << grammar ; -s : e {}; +s : e {}; e returns [int v] : e '*' e {$v = .e(0).v * .e(1).v;} # binary | e '+' e {$v = .e(0).v + .e(1).v;} # binary | INT {$v = $INT.int;} # anInt | '(' e ')' {$v = $e.v;} # parens - | left=e INC { $v = $left.v + 1;} # unary - | left=e DEC { $v = $left.v - 1;} # unary + | left=e INC {$v = $left.v + 1;} # unary + | left=e DEC {$v = $left.v - 1;} # unary | ID {} # anID - ; + ; ID : 'a'..'z'+ ; INT : '0'..'9'+ ; INC : '++' ; diff --git a/runtime-testsuite/resources/org/antlr/v4/test/runtime/templates/ParserExec/PredicatedIfIfElse.stg b/runtime-testsuite/resources/org/antlr/v4/test/runtime/templates/ParserExec/PredicatedIfIfElse.stg index d9125b00b..92ba179f0 100644 --- a/runtime-testsuite/resources/org/antlr/v4/test/runtime/templates/ParserExec/PredicatedIfIfElse.stg +++ b/runtime-testsuite/resources/org/antlr/v4/test/runtime/templates/ParserExec/PredicatedIfIfElse.stg @@ -25,7 +25,7 @@ grammar(grammarName) ::= << grammar ; s : stmt EOF ; stmt : ifStmt | ID; -ifStmt : 'if' ID stmt ('else' stmt | { }?); +ifStmt : 'if' ID stmt ('else' stmt | { Parser.ELSE})> }?); ELSE : 'else'; ID : [a-zA-Z]+; WS : [ \\n\\t]+ -> skip; diff --git a/runtime-testsuite/resources/org/antlr/v4/test/runtime/templates/SemPredEvalParser/PredFromAltTestedInLoopBack.stg b/runtime-testsuite/resources/org/antlr/v4/test/runtime/templates/SemPredEvalParser/PredFromAltTestedInLoopBack.stg index d88dfc697..2ce868b63 100644 --- a/runtime-testsuite/resources/org/antlr/v4/test/runtime/templates/SemPredEvalParser/PredFromAltTestedInLoopBack.stg +++ b/runtime-testsuite/resources/org/antlr/v4/test/runtime/templates/SemPredEvalParser/PredFromAltTestedInLoopBack.stg @@ -18,7 +18,7 @@ file_ @after {} : para para EOF ; para: paraContent NL NL ; -paraContent : ('s'|'x'|{}? NL)+ ; +paraContent : ('s'|'x'|{Parser.NL})>}? NL)+ ; NL : '\n' ; s : 's' ; X : 'x' ; diff --git a/tool/test/org/antlr/v4/test/runtime/java/Java.test.stg b/tool/test/org/antlr/v4/test/runtime/java/Java.test.stg index 59edd5414..1e639a4c5 100644 --- a/tool/test/org/antlr/v4/test/runtime/java/Java.test.stg +++ b/tool/test/org/antlr/v4/test/runtime/java/Java.test.stg @@ -228,6 +228,14 @@ RuleInvocationStack() ::= "getRuleInvocationStack()" LL_EXACT_AMBIG_DETECTION() ::= <<_interp.setPredictionMode(PredictionMode.LL_EXACT_AMBIG_DETECTION);>> +ParserPropertyMember() ::= << +@members { +boolean Property() { + return true; +} +} +>> + PositionAdjustingLexer() ::= << @Override diff --git a/tool/tool.iml b/tool/tool.iml index 40ed50241..957e11e4b 100644 --- a/tool/tool.iml +++ b/tool/tool.iml @@ -19,6 +19,7 @@ + @@ -32,6 +33,10 @@ + + + +