
org.antlr.v4.test.runtime.python2.Python2.test.stg Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of antlr4-runtime-testsuite Show documentation
Show all versions of antlr4-runtime-testsuite Show documentation
A collection of tests for ANTLR 4 Runtime libraries.
IgnoredTests ::= [
default: false
]
TestFile(file) ::= <<
/* This file is generated by TestGenerator, any edits will be overwritten by the next generation. */
package org.antlr.v4.test.runtime.python2;
import org.junit.Ignore;
import org.junit.Test;
import static org.junit.Assert.*;
import org.antlr.v4.test.runtime.java.ErrorQueue;
import org.antlr.v4.tool.Grammar;
@SuppressWarnings("unused")
public class Test extends BasePython2Test {
}; separator="\n", wrap, anchor>
}
>>
LexerTestMethod(test) ::= <<
/* This file and method are generated by TestGenerator, any edits will be overwritten by the next generation. */
public void test() throws Exception {
mkdir(tmpdir);
=;
writeFile(tmpdir, ".g4", slave_);
}; separator="\n">
String input =;
String found = execLexer(".g4", grammar, "Lexer", input, );
assertEquals(, found);
assertEquals(, this.stderrDuringParse);
assertNull(this.stderrDuringParse);
}>
}
>>
CompositeLexerTestMethod(test) ::= <<
>>
ParserTestMethod(test) ::= <<
/* This file and method are generated by TestGenerator, any edits will be overwritten by the next generation. */
public void test() throws Exception {
mkdir(tmpdir);
=;
rawGenerateAndBuildRecognizer(".g4", slave_, null, "");
writeFile(tmpdir, ".g4", slave_);
}; separator="\n">
String input =;
String found = execParser(".g4", grammar, "Parser", "Lexer", "Listener", "Visitor", "", input, );
assertEquals(, found);
assertEquals(, this.stderrDuringParse);
assertNull(this.stderrDuringParse);
}>
}
>>
CompositeParserTestMethod(test) ::= <<
>>
AbstractParserTestMethod(test) ::= <<
/* this file and method are generated, any edit will be overwritten by the next generation */
String test(String input) throws Exception {
String grammar = };separator="\\n\" +\n", wrap, anchor>";
return execParser(".g4", grammar, "Parser", "Lexer", "", input, );
}
>>
ConcreteParserTestMethod(test) ::= <<
/* this file and method are generated, any edit will be overwritten by the next generation */
@Test
public void test() throws Exception {
String found = test("");
assertEquals("", found);
assertEquals("", this.stderrDuringParse);
assertNull(this.stderrDuringParse);
}
>>
testAnnotations(test) ::= <%
@Test
<\n>@Ignore()
.})))>
<\n>@Ignore(.})))>)
%>
buildStringLiteral(text, variable) ::= <<
StringBuilder Builder = new StringBuilder();
Builder.append("");}; separator="\n">
String = Builder.toString();
>>
writeStringLiteral(text) ::= <%
""
%>
writeLines(textLines) ::= <%
"}; separator="\" +">"
""
%>
string(text) ::= <<
""
>>
writeBoolean(o) ::= "truefalse"
writeln(s) ::= <)>>
write(s) ::= <,end='')>>
False() ::= "False"
True() ::= "True"
Not(v) ::= "not "
Assert(s) ::= ""
Cast(t,v) ::= ""
Append(a,b) ::= " + str()"
Concat(a,b) ::= ""
DeclareLocal(s,v) ::= " = "
AssertIsList(v) ::= "assert isinstance(v, (list, tuple))"
AssignLocal(s,v) ::= " = "
InitIntMember(n,v) ::= <% = %>
InitBooleanMember(n,v) ::= <% = %>
GetMember(n) ::= <%self.%>
SetMember(n,v) ::= <%self. = %>
AddMember(n,v) ::= <%self. += %>
PlusMember(v,n) ::= <% + str(self.)%>
MemberEquals(n,v) ::= <%self. == %>
ModMemberEquals(n,m,v) ::= <%self. % == %>
ModMemberNotEquals(n,m,v) ::= <%self. % != %>
DumpDFA() ::= "self.dumpDFA()"
Pass() ::= "pass"
StringList() ::= ""
BuildParseTrees() ::= "self._buildParseTrees = True"
BailErrorStrategy() ::= <%self._errHandler = BailErrorStrategy()%>
ToStringTree(s) ::= <%.toStringTree(recog=self)%>
Column() ::= "self.column"
Text() ::= "self.text"
ValEquals(a,b) ::= <%==%>
TextEquals(a) ::= <%self.text==""%>
PlusText(a) ::= <%"" + self.text%>
InputText() ::= "self._input.getText()"
LTEquals(i, v) ::= <%self._input.LT().text==%>
LANotEquals(i, v) ::= <%self._input.LA()!=%>
TokenStartColumnEquals(i) ::= <%self._tokenStartColumn==%>
ImportListener(X) ::= ""
GetExpectedTokenNames() ::= "self.getExpectedTokens().toString(self.literalNames, self.symbolicNames)"
RuleInvocationStack() ::= "str_list(self.getRuleInvocationStack())"
LL_EXACT_AMBIG_DETECTION() ::= <>
ParserPropertyMember() ::= <<
@members {
def Property(self):
return True
}
>>
PositionAdjustingLexer() ::= <<
def resetAcceptPosition(self, index, line, column):
self._input.seek(index)
self.line = line
self.column = column
self._interp.consume(self._input)
def nextToken(self):
if self._interp.__dict__.get("resetAcceptPosition", None) is None:
self._interp.__dict__["resetAcceptPosition"] = self.resetAcceptPosition
return super(type(self),self).nextToken()
def emit(self):
if self._type==PositionAdjustingLexer.TOKENS:
self.handleAcceptPositionForKeyword("tokens")
elif self._type==PositionAdjustingLexer.LABEL:
self.handleAcceptPositionForIdentifier()
return super(type(self),self).emit()
def handleAcceptPositionForIdentifier(self):
tokenText = self.text
identifierLength = 0
while identifierLength \< len(tokenText) and self.isIdentifierChar(tokenText[identifierLength]):
identifierLength += 1
if self._input.index > self._tokenStartCharIndex + identifierLength:
offset = identifierLength - 1
self._interp.resetAcceptPosition(self._tokenStartCharIndex + offset,
self._tokenStartLine, self._tokenStartColumn + offset)
return True
else:
return False
def handleAcceptPositionForKeyword(self, keyword):
if self._input.index > self._tokenStartCharIndex + len(keyword):
offset = len(keyword) - 1
self._interp.resetAcceptPosition(self._tokenStartCharIndex + offset,
self._tokenStartLine, self._tokenStartColumn + offset)
return True
else:
return False
@staticmethod
def isIdentifierChar(c):
return c.isalnum() or c == '_'
>>
BasicListener(X) ::= <<
if __name__ is not None and "." in __name__:
from .Listener import Listener
else:
from Listener import Listener
class LeafListener(TListener):
def visitTerminal(self, node):
print(node.symbol.text)
>>
WalkListener(s) ::= <<
walker = ParseTreeWalker()
walker.walk(TParser.LeafListener(), )
>>
TreeNodeWithAltNumField(X) ::= <<
@parser::members {
class MyRuleNode(ParserRuleContext):
def __init__(self, parent = None, invokingStateNumber = None ):
super(Parser.MyRuleNode, self).__init__(parent, invokingStateNumber)
self.altNum = 0;
def getAltNumber(self):
return self.altNum
def setAltNumber(self, altNum):
self.altNum = altNum
}
>>
TokenGetterListener(X) ::= <<
if __name__ is not None and "." in __name__:
from .Listener import Listener
else:
from Listener import Listener
class LeafListener(TListener):
def exitA(self, ctx):
if ctx.getChildCount()==2:
print(ctx.INT(0).symbol.text + ' ' + ctx.INT(1).symbol.text + ' ' + str_list(ctx.INT()))
else:
print(str(ctx.ID().symbol))
>>
RuleGetterListener(X) ::= <<
if __name__ is not None and "." in __name__:
from .Listener import Listener
else:
from Listener import Listener
class LeafListener(TListener):
def exitA(self, ctx):
if ctx.getChildCount()==2:
print(ctx.b(0).start.text + ' ' + ctx.b(1).start.text + ' ' + ctx.b()[0].start.text)
else:
print(ctx.b(0).start.text)
>>
LRListener(X) ::= <<
if __name__ is not None and "." in __name__:
from .Listener import Listener
else:
from Listener import Listener
class LeafListener(TListener):
def exitE(self, ctx):
if ctx.getChildCount()==3:
print(ctx.e(0).start.text + ' ' + ctx.e(1).start.text + ' ' + ctx.e()[0].start.text)
else:
print(ctx.INT().symbol.text)
>>
LRWithLabelsListener(X) ::= <<
if __name__ is not None and "." in __name__:
from .Listener import Listener
else:
from Listener import Listener
class LeafListener(TListener):
def exitCall(self, ctx):
print(ctx.e().start.text + ' ' + str(ctx.eList()))
def exitInt(self, ctx):
print(ctx.INT().symbol.text)
>>
DeclareContextListGettersFunction() ::= <<
def foo():
s = SContext()
a = s.a()
b = s.b()
>>
Declare_foo() ::= <>
Invoke_foo() ::= "self.foo()"
Declare_pred() ::= <>
Invoke_pred(v) ::= <)>>
isEmpty ::= [
"": true,
default: false
]
© 2015 - 2025 Weber Informatics LLC | Privacy Policy