All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.antlr.v4.test.runtime.csharp.CSharp.test.stg Maven / Gradle / Ivy

There is a newer version: 4.13.2
Show newest version
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.csharp;

import org.junit.Test;
import org.junit.Ignore;


import org.antlr.v4.test.runtime.java.ErrorQueue;


import org.antlr.v4.tool.Grammar;


@SuppressWarnings("unused")
public class Test extends BaseTest {

	}; separator="\n", wrap, anchor>

}<\n>
>>

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", "", 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) ::= <);>>

False() ::= "false"

True() ::= "true"

Not(v) ::= "!"

Assert(s) ::= <);>>

Cast(t,v) ::= "(())"

Append(a,b) ::= " + "

Concat(a,b) ::= ""

DeclareLocal(s,v) ::= "Object  = ;"

AssertIsList(v) ::= "System.Collections.IList __ttt__ = ;" // just use static type system

AssignLocal(s,v) ::= " = ;"

InitIntMember(n,v) ::= <%int  = ;%>

InitBooleanMember(n,v) ::= <%bool  = ;%>

GetMember(n) ::= <%this.%>

SetMember(n,v) ::= <%this. = ;%>

AddMember(n,v) ::= <%this. += ;%>

PlusMember(v,n) ::= <% + this.%>

MemberEquals(n,v) ::= <%this. == %>

ModMemberEquals(n,m,v) ::= <%this. %  == %>

ModMemberNotEquals(n,m,v) ::= <%this. %  != %>

DumpDFA() ::= "this.DumpDFA();"

Pass() ::= ""

StringList() ::= "List\"

BuildParseTrees() ::= "this.BuildParseTree = true;"

BailErrorStrategy() ::= <%ErrorHandler = new BailErrorStrategy();%>

ToStringTree(s) ::= <%.ToStringTree(this)%>

Column() ::= "this.Column"

Text() ::= "this.Text"

ValEquals(a,b) ::= <%==%>

TextEquals(a) ::= <%this.Text.Equals("")%>

PlusText(a) ::= <%"" + this.Text%>

InputText() ::= "this.TokenStream.GetText()"

LTEquals(i, v) ::= <%this.TokenStream.Lt().Text.Equals()%>

LANotEquals(i, v) ::= <%this.InputStream.La()!=%>

TokenStartColumnEquals(i) ::= <%this.TokenStartColumn==%>

ImportListener(X) ::= ""

GetExpectedTokenNames() ::= "this.GetExpectedTokens().ToString(this.Vocabulary)"

RuleInvocationStack() ::= "GetRuleInvocationStackAsString()"

LL_EXACT_AMBIG_DETECTION() ::= <>

ParserPropertyMember() ::= <<
@members {
bool Property() {
	return true;
}
}
>>

PositionAdjustingLexer() ::= <<

public override IToken NextToken() {
	if (!(Interpreter is PositionAdjustingLexerATNSimulator)) {
		Interpreter = new PositionAdjustingLexerATNSimulator(this, _ATN);
	}

	return base.NextToken();
}

public override IToken Emit() {
	switch (Type) {
	case TOKENS:
		HandleAcceptPositionForKeyword("tokens");
		break;

	case LABEL:
		HandleAcceptPositionForIdentifier();
		break;

	default:
		break;
	}

	return base.Emit();
}

private bool HandleAcceptPositionForIdentifier() {
	string tokenText = this.Text;
	int identifierLength = 0;
	while (identifierLength \< tokenText.Length && IsIdentifierChar(tokenText[identifierLength])) {
		identifierLength++;
	}

	if (InputStream.Index > TokenStartCharIndex + identifierLength) {
		int offset = identifierLength - 1;
		getInterpreter().ResetAcceptPosition((ICharStream)InputStream, TokenStartCharIndex + offset, TokenStartLine, TokenStartColumn + offset);
		return true;
	}

	return false;
}

private bool HandleAcceptPositionForKeyword(string keyword) {
	if (InputStream.Index > TokenStartCharIndex + keyword.Length) {
		int offset = keyword.Length - 1;
		getInterpreter().ResetAcceptPosition((ICharStream)InputStream, TokenStartCharIndex + offset, TokenStartLine, TokenStartColumn + offset);
		return true;
	}

	return false;
}

public PositionAdjustingLexerATNSimulator getInterpreter() {
	return (PositionAdjustingLexerATNSimulator)base.Interpreter;
}

private static bool IsIdentifierChar(char c) {
	return Char.IsLetterOrDigit(c) || c == '_';
}

public class PositionAdjustingLexerATNSimulator : LexerATNSimulator {

	public PositionAdjustingLexerATNSimulator(Lexer recog, ATN atn)
	: base(recog, atn)
	{
	}

	public void ResetAcceptPosition(ICharStream input, int index, int line, int column) {
		input.Seek(index);
		this.Line = line;
		this.Column = column;
		Consume(input);
	}

}

>>

BasicListener(X) ::= <<
public class LeafListener : TBaseListener {
	public override void VisitTerminal(ITerminalNode node) {
		Console.WriteLine(node.Symbol.Text);
	}
}
>>

WalkListener(s) ::= <<
ParseTreeWalker walker = new ParseTreeWalker();
walker.Walk(new LeafListener(), );
>>

TreeNodeWithAltNumField(X) ::= <<
@parser::members {
public class MyRuleNode : ParserRuleContext {
	public int altNum;
	public MyRuleNode(ParserRuleContext parent, int invokingStateNumber): base(parent, invokingStateNumber)
	{
	}
	public override int getAltNumber() { return altNum; }
	public override void setAltNumber(int altNum) { this.altNum = altNum; }
}
}
>>

TokenGetterListener(X) ::= <<
public class LeafListener : TBaseListener {
	public override void ExitA(TParser.AContext ctx) {
		if (ctx.ChildCount==2)
		{
			StringBuilder sb = new StringBuilder ("[");
			foreach (ITerminalNode node in ctx.INT ()) {
				sb.Append (node.ToString ());
				sb.Append (", ");
			}
			sb.Length = sb.Length - 2;
			sb.Append ("]");
			Console.Write ("{0} {1} {2}", ctx.INT (0).Symbol.Text,
				ctx.INT (1).Symbol.Text, sb.ToString());
		}
		else
			Console.WriteLine(ctx.ID().Symbol);
	}
}
>>

RuleGetterListener(X) ::= <<
public class LeafListener : TBaseListener {
	public override void ExitA(TParser.AContext ctx) {
		if (ctx.ChildCount==2) {
			Console.Write("{0} {1} {2}",ctx.b(0).Start.Text,
				ctx.b(1).Start.Text,ctx.b()[0].Start.Text);
		} else
			Console.WriteLine(ctx.b(0).Start.Text);
	}
}
>>


LRListener(X) ::= <<
public class LeafListener : TBaseListener {
	public override void ExitE(TParser.EContext ctx) {
		if (ctx.ChildCount==3) {
			Console.Write("{0} {1} {2}\n",ctx.e(0).Start.Text,
				ctx.e(1).Start.Text, ctx.e()[0].Start.Text);
		} else
			Console.WriteLine(ctx.INT().Symbol.Text);
	}
}
>>

LRWithLabelsListener(X) ::= <<
public class LeafListener : TBaseListener {
	public override void ExitCall(TParser.CallContext ctx) {
		Console.Write("{0} {1}",ctx.e().Start.Text,ctx.eList());
	}
	public override void ExitInt(TParser.IntContext ctx) {
		Console.WriteLine(ctx.INT().Symbol.Text);
	}
}
>>

DeclareContextListGettersFunction() ::= <<
void foo() {
	SContext s = null;
	AContext[] a = s.a();
	BContext[] b = s.b();
}
>>

Declare_foo() ::= <>

Invoke_foo() ::= "this.foo();"

Declare_pred() ::= <