
r.inchworm.inchworm.0.8.0.source-code.InchwormAsmParser Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of inchworm Show documentation
Show all versions of inchworm Show documentation
Secure computation, one step at a time.
The newest version!
// $ANTLR 3.5.2 /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g 2015-12-15 02:31:33
package org.factcenter.inchworm.asm;
import java.math.BigInteger;
import java.util.HashMap;
import org.factcenter.inchworm.*;
import org.factcenter.inchworm.ops.*;
import static org.factcenter.inchworm.Constants.*;
import static org.factcenter.inchworm.Constants.NamedReg.*;
import static org.factcenter.inchworm.ops.OpDefaults.*;
import static org.factcenter.inchworm.VMState.*;
import static org.factcenter.inchworm.asm.Assembler.*;
import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;
import org.antlr.runtime.tree.*;
@SuppressWarnings("all")
public class InchwormAsmParser extends Parser {
public static final String[] tokenNames = new String[] {
"", "", "", "", "ADD", "AND", "BINARY_LITERAL",
"BIN_DIGITS", "CALL", "CARRY", "CODE", "COMMENT", "CONST", "COUNTERS",
"CTRL", "CTR_FLAG", "CTR_PREFIX", "CURRENT_POS", "C_ADD", "C_AND", "C_DIV",
"C_MOD", "C_MUL", "C_NOT", "C_OR", "C_SHL", "C_SHR", "C_SUB", "C_UNARY_MINUS",
"C_XOR", "DATA", "DECIMAL_LITERAL", "DEC_DIGITS", "DIV", "EOI", "ESCAPE",
"FLAGS", "FRAMESIZE", "FREEREGS", "HALT", "HEADER", "HERE", "HEX_DIGITS",
"HEX_LITERAL", "ID", "IN", "INSTRUCTION", "INSTRUCTIONDEF", "IP", "LOAD",
"LOADREG", "LOCAL_PREFIX", "LOCAL_REG", "MUL", "MUX", "NEXT", "NOP", "NUM",
"OP", "OPTION", "OR", "OUT", "OUT1", "OUT2", "OVERFLOW", "PERCENT", "RAM",
"RAMLOADSIZE", "RAMPTRSIZE", "RAMWORDSIZE", "REG", "REGPTRSIZE", "REG_PREFIX",
"RETURN", "ROL", "ROMPTRSIZE", "SEC_CODE", "SEC_CONST", "SEC_DATA", "SEC_END",
"SEC_HEADER", "SEC_RAM", "SIGN", "STACKPTRSIZE", "STAR", "STORE", "STOREREG",
"STRING", "SUB", "SYMBOL", "WORDSIZE", "WS", "XOR", "XORI", "ZERO", "'&'",
"'('", "')'", "'+'", "','", "'-'", "'/'", "':'", "'<'", "'<<'", "'='",
"'>>'", "'['", "']'", "'^'", "'db'", "'|'", "'~'"
};
public static final int EOF=-1;
public static final int T__95=95;
public static final int T__96=96;
public static final int T__97=97;
public static final int T__98=98;
public static final int T__99=99;
public static final int T__100=100;
public static final int T__101=101;
public static final int T__102=102;
public static final int T__103=103;
public static final int T__104=104;
public static final int T__105=105;
public static final int T__106=106;
public static final int T__107=107;
public static final int T__108=108;
public static final int T__109=109;
public static final int T__110=110;
public static final int T__111=111;
public static final int T__112=112;
public static final int ADD=4;
public static final int AND=5;
public static final int BINARY_LITERAL=6;
public static final int BIN_DIGITS=7;
public static final int CALL=8;
public static final int CARRY=9;
public static final int CODE=10;
public static final int COMMENT=11;
public static final int CONST=12;
public static final int COUNTERS=13;
public static final int CTRL=14;
public static final int CTR_FLAG=15;
public static final int CTR_PREFIX=16;
public static final int CURRENT_POS=17;
public static final int C_ADD=18;
public static final int C_AND=19;
public static final int C_DIV=20;
public static final int C_MOD=21;
public static final int C_MUL=22;
public static final int C_NOT=23;
public static final int C_OR=24;
public static final int C_SHL=25;
public static final int C_SHR=26;
public static final int C_SUB=27;
public static final int C_UNARY_MINUS=28;
public static final int C_XOR=29;
public static final int DATA=30;
public static final int DECIMAL_LITERAL=31;
public static final int DEC_DIGITS=32;
public static final int DIV=33;
public static final int EOI=34;
public static final int ESCAPE=35;
public static final int FLAGS=36;
public static final int FRAMESIZE=37;
public static final int FREEREGS=38;
public static final int HALT=39;
public static final int HEADER=40;
public static final int HERE=41;
public static final int HEX_DIGITS=42;
public static final int HEX_LITERAL=43;
public static final int ID=44;
public static final int IN=45;
public static final int INSTRUCTION=46;
public static final int INSTRUCTIONDEF=47;
public static final int IP=48;
public static final int LOAD=49;
public static final int LOADREG=50;
public static final int LOCAL_PREFIX=51;
public static final int LOCAL_REG=52;
public static final int MUL=53;
public static final int MUX=54;
public static final int NEXT=55;
public static final int NOP=56;
public static final int NUM=57;
public static final int OP=58;
public static final int OPTION=59;
public static final int OR=60;
public static final int OUT=61;
public static final int OUT1=62;
public static final int OUT2=63;
public static final int OVERFLOW=64;
public static final int PERCENT=65;
public static final int RAM=66;
public static final int RAMLOADSIZE=67;
public static final int RAMPTRSIZE=68;
public static final int RAMWORDSIZE=69;
public static final int REG=70;
public static final int REGPTRSIZE=71;
public static final int REG_PREFIX=72;
public static final int RETURN=73;
public static final int ROL=74;
public static final int ROMPTRSIZE=75;
public static final int SEC_CODE=76;
public static final int SEC_CONST=77;
public static final int SEC_DATA=78;
public static final int SEC_END=79;
public static final int SEC_HEADER=80;
public static final int SEC_RAM=81;
public static final int SIGN=82;
public static final int STACKPTRSIZE=83;
public static final int STAR=84;
public static final int STORE=85;
public static final int STOREREG=86;
public static final int STRING=87;
public static final int SUB=88;
public static final int SYMBOL=89;
public static final int WORDSIZE=90;
public static final int WS=91;
public static final int XOR=92;
public static final int XORI=93;
public static final int ZERO=94;
// delegates
public Parser[] getDelegates() {
return new Parser[] {};
}
// delegators
public InchwormAsmParser(TokenStream input) {
this(input, new RecognizerSharedState());
}
public InchwormAsmParser(TokenStream input, RecognizerSharedState state) {
super(input, state);
}
protected TreeAdaptor adaptor = new CommonTreeAdaptor();
public void setTreeAdaptor(TreeAdaptor adaptor) {
this.adaptor = adaptor;
}
public TreeAdaptor getTreeAdaptor() {
return adaptor;
}
@Override public String[] getTokenNames() { return InchwormAsmParser.tokenNames; }
@Override public String getGrammarFileName() { return "/home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g"; }
/**
* Symbol Table
*/
HashMap symbols;
ArrayList opInfo = new ArrayList();
ArrayList ops = new ArrayList();
int nextInstruction = 0; // Counter to keep track of instructions for label definitions
VMState params;
/**
* Initialize VM State. Call this before starting to parse.
*/
void initState(VMState params, HashMap symbols) {
this.symbols = symbols;
this.params = params;
nextInstruction = 0;
opInfo.clear();
}
VMState getVMState() {
return params;
}
@Override
public Object recoverFromMismatchedSet(IntStream input, RecognitionException e, BitSet follow)
throws RecognitionException {
throw e;
}
static class SyntaxError extends RecognitionException {
String errorMessage;
SyntaxError(String errorMessage, IntStream input) {
super(input);
this.errorMessage = String.format("%s", errorMessage);
}
}
/**
* Override the displayRecognitionError to deal with custom errors.
*/
@Override
public void displayRecognitionError(String[] tokenNames, RecognitionException e) {
if (e instanceof SyntaxError) {
SyntaxError se = (SyntaxError) e;
emitErrorMessage(se.errorMessage);
} else {
super.displayRecognitionError(tokenNames, e);
}
}
public static class c_xor_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "c_xor"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:279:1: c_xor : '^' ;
public final InchwormAsmParser.c_xor_return c_xor() throws RecognitionException {
InchwormAsmParser.c_xor_return retval = new InchwormAsmParser.c_xor_return();
retval.start = input.LT(1);
Object root_0 = null;
Token char_literal1=null;
Object char_literal1_tree=null;
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:279:7: ( '^' )
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:279:9: '^'
{
root_0 = (Object)adaptor.nil();
char_literal1=(Token)match(input,109,FOLLOW_109_in_c_xor1035);
char_literal1_tree = (Object)adaptor.create(char_literal1);
adaptor.addChild(root_0, char_literal1_tree);
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "c_xor"
public static class c_and_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "c_and"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:280:1: c_and : '&' ;
public final InchwormAsmParser.c_and_return c_and() throws RecognitionException {
InchwormAsmParser.c_and_return retval = new InchwormAsmParser.c_and_return();
retval.start = input.LT(1);
Object root_0 = null;
Token char_literal2=null;
Object char_literal2_tree=null;
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:280:7: ( '&' )
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:280:9: '&'
{
root_0 = (Object)adaptor.nil();
char_literal2=(Token)match(input,95,FOLLOW_95_in_c_and1042);
char_literal2_tree = (Object)adaptor.create(char_literal2);
adaptor.addChild(root_0, char_literal2_tree);
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "c_and"
public static class c_or_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "c_or"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:281:1: c_or : '|' ;
public final InchwormAsmParser.c_or_return c_or() throws RecognitionException {
InchwormAsmParser.c_or_return retval = new InchwormAsmParser.c_or_return();
retval.start = input.LT(1);
Object root_0 = null;
Token char_literal3=null;
Object char_literal3_tree=null;
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:281:6: ( '|' )
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:281:8: '|'
{
root_0 = (Object)adaptor.nil();
char_literal3=(Token)match(input,111,FOLLOW_111_in_c_or1049);
char_literal3_tree = (Object)adaptor.create(char_literal3);
adaptor.addChild(root_0, char_literal3_tree);
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "c_or"
public static class c_shl_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "c_shl"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:282:1: c_shl : '<<' ;
public final InchwormAsmParser.c_shl_return c_shl() throws RecognitionException {
InchwormAsmParser.c_shl_return retval = new InchwormAsmParser.c_shl_return();
retval.start = input.LT(1);
Object root_0 = null;
Token string_literal4=null;
Object string_literal4_tree=null;
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:282:7: ( '<<' )
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:282:9: '<<'
{
root_0 = (Object)adaptor.nil();
string_literal4=(Token)match(input,104,FOLLOW_104_in_c_shl1056);
string_literal4_tree = (Object)adaptor.create(string_literal4);
adaptor.addChild(root_0, string_literal4_tree);
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "c_shl"
public static class c_shr_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "c_shr"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:283:1: c_shr : '>>' ;
public final InchwormAsmParser.c_shr_return c_shr() throws RecognitionException {
InchwormAsmParser.c_shr_return retval = new InchwormAsmParser.c_shr_return();
retval.start = input.LT(1);
Object root_0 = null;
Token string_literal5=null;
Object string_literal5_tree=null;
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:283:7: ( '>>' )
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:283:9: '>>'
{
root_0 = (Object)adaptor.nil();
string_literal5=(Token)match(input,106,FOLLOW_106_in_c_shr1063);
string_literal5_tree = (Object)adaptor.create(string_literal5);
adaptor.addChild(root_0, string_literal5_tree);
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "c_shr"
public static class c_add_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "c_add"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:284:1: c_add : '+' ;
public final InchwormAsmParser.c_add_return c_add() throws RecognitionException {
InchwormAsmParser.c_add_return retval = new InchwormAsmParser.c_add_return();
retval.start = input.LT(1);
Object root_0 = null;
Token char_literal6=null;
Object char_literal6_tree=null;
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:284:7: ( '+' )
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:284:9: '+'
{
root_0 = (Object)adaptor.nil();
char_literal6=(Token)match(input,98,FOLLOW_98_in_c_add1070);
char_literal6_tree = (Object)adaptor.create(char_literal6);
adaptor.addChild(root_0, char_literal6_tree);
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "c_add"
public static class c_sub_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "c_sub"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:285:1: c_sub : '-' ;
public final InchwormAsmParser.c_sub_return c_sub() throws RecognitionException {
InchwormAsmParser.c_sub_return retval = new InchwormAsmParser.c_sub_return();
retval.start = input.LT(1);
Object root_0 = null;
Token char_literal7=null;
Object char_literal7_tree=null;
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:285:7: ( '-' )
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:285:9: '-'
{
root_0 = (Object)adaptor.nil();
char_literal7=(Token)match(input,100,FOLLOW_100_in_c_sub1077);
char_literal7_tree = (Object)adaptor.create(char_literal7);
adaptor.addChild(root_0, char_literal7_tree);
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "c_sub"
public static class c_mul_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "c_mul"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:286:1: c_mul : STAR ;
public final InchwormAsmParser.c_mul_return c_mul() throws RecognitionException {
InchwormAsmParser.c_mul_return retval = new InchwormAsmParser.c_mul_return();
retval.start = input.LT(1);
Object root_0 = null;
Token STAR8=null;
Object STAR8_tree=null;
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:286:7: ( STAR )
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:286:9: STAR
{
root_0 = (Object)adaptor.nil();
STAR8=(Token)match(input,STAR,FOLLOW_STAR_in_c_mul1084);
STAR8_tree = (Object)adaptor.create(STAR8);
adaptor.addChild(root_0, STAR8_tree);
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "c_mul"
public static class c_div_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "c_div"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:287:1: c_div : '/' ;
public final InchwormAsmParser.c_div_return c_div() throws RecognitionException {
InchwormAsmParser.c_div_return retval = new InchwormAsmParser.c_div_return();
retval.start = input.LT(1);
Object root_0 = null;
Token char_literal9=null;
Object char_literal9_tree=null;
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:287:7: ( '/' )
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:287:9: '/'
{
root_0 = (Object)adaptor.nil();
char_literal9=(Token)match(input,101,FOLLOW_101_in_c_div1091);
char_literal9_tree = (Object)adaptor.create(char_literal9);
adaptor.addChild(root_0, char_literal9_tree);
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "c_div"
public static class c_mod_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "c_mod"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:288:1: c_mod : PERCENT ;
public final InchwormAsmParser.c_mod_return c_mod() throws RecognitionException {
InchwormAsmParser.c_mod_return retval = new InchwormAsmParser.c_mod_return();
retval.start = input.LT(1);
Object root_0 = null;
Token PERCENT10=null;
Object PERCENT10_tree=null;
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:288:7: ( PERCENT )
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:288:9: PERCENT
{
root_0 = (Object)adaptor.nil();
PERCENT10=(Token)match(input,PERCENT,FOLLOW_PERCENT_in_c_mod1098);
PERCENT10_tree = (Object)adaptor.create(PERCENT10);
adaptor.addChild(root_0, PERCENT10_tree);
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "c_mod"
public static class c_not_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "c_not"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:289:1: c_not : '~' ;
public final InchwormAsmParser.c_not_return c_not() throws RecognitionException {
InchwormAsmParser.c_not_return retval = new InchwormAsmParser.c_not_return();
retval.start = input.LT(1);
Object root_0 = null;
Token char_literal11=null;
Object char_literal11_tree=null;
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:289:7: ( '~' )
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:289:9: '~'
{
root_0 = (Object)adaptor.nil();
char_literal11=(Token)match(input,112,FOLLOW_112_in_c_not1105);
char_literal11_tree = (Object)adaptor.create(char_literal11);
adaptor.addChild(root_0, char_literal11_tree);
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "c_not"
public static class program_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "program"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:354:1: program : ( header_section )? ( const_section )? ( data_section )? ( code_section )? ( ram_section )? ( SEC_END )? ;
public final InchwormAsmParser.program_return program() throws RecognitionException {
InchwormAsmParser.program_return retval = new InchwormAsmParser.program_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SEC_END17=null;
ParserRuleReturnScope header_section12 =null;
ParserRuleReturnScope const_section13 =null;
ParserRuleReturnScope data_section14 =null;
ParserRuleReturnScope code_section15 =null;
ParserRuleReturnScope ram_section16 =null;
Object SEC_END17_tree=null;
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:354:9: ( ( header_section )? ( const_section )? ( data_section )? ( code_section )? ( ram_section )? ( SEC_END )? )
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:354:11: ( header_section )? ( const_section )? ( data_section )? ( code_section )? ( ram_section )? ( SEC_END )?
{
root_0 = (Object)adaptor.nil();
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:354:11: ( header_section )?
int alt1=2;
int LA1_0 = input.LA(1);
if ( (LA1_0==COUNTERS||LA1_0==FRAMESIZE||LA1_0==INSTRUCTIONDEF||(LA1_0 >= RAMLOADSIZE && LA1_0 <= RAMWORDSIZE)||LA1_0==REGPTRSIZE||LA1_0==ROMPTRSIZE||LA1_0==SEC_HEADER||LA1_0==STACKPTRSIZE||LA1_0==WORDSIZE) ) {
alt1=1;
}
switch (alt1) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:354:11: header_section
{
pushFollow(FOLLOW_header_section_in_program1355);
header_section12=header_section();
state._fsp--;
adaptor.addChild(root_0, header_section12.getTree());
}
break;
}
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:354:27: ( const_section )?
int alt2=2;
int LA2_0 = input.LA(1);
if ( (LA2_0==SEC_CONST) ) {
alt2=1;
}
switch (alt2) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:354:27: const_section
{
pushFollow(FOLLOW_const_section_in_program1358);
const_section13=const_section();
state._fsp--;
adaptor.addChild(root_0, const_section13.getTree());
}
break;
}
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:354:42: ( data_section )?
int alt3=2;
int LA3_0 = input.LA(1);
if ( (LA3_0==SEC_DATA) ) {
alt3=1;
}
switch (alt3) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:354:42: data_section
{
pushFollow(FOLLOW_data_section_in_program1361);
data_section14=data_section();
state._fsp--;
adaptor.addChild(root_0, data_section14.getTree());
}
break;
}
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:354:56: ( code_section )?
int alt4=2;
int LA4_0 = input.LA(1);
if ( (LA4_0==SEC_CODE) ) {
alt4=1;
}
switch (alt4) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:354:56: code_section
{
pushFollow(FOLLOW_code_section_in_program1364);
code_section15=code_section();
state._fsp--;
adaptor.addChild(root_0, code_section15.getTree());
}
break;
}
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:354:70: ( ram_section )?
int alt5=2;
int LA5_0 = input.LA(1);
if ( (LA5_0==SEC_RAM) ) {
alt5=1;
}
switch (alt5) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:354:70: ram_section
{
pushFollow(FOLLOW_ram_section_in_program1367);
ram_section16=ram_section();
state._fsp--;
adaptor.addChild(root_0, ram_section16.getTree());
}
break;
}
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:354:83: ( SEC_END )?
int alt6=2;
int LA6_0 = input.LA(1);
if ( (LA6_0==SEC_END) ) {
alt6=1;
}
switch (alt6) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:354:83: SEC_END
{
SEC_END17=(Token)match(input,SEC_END,FOLLOW_SEC_END_in_program1370);
SEC_END17_tree = (Object)adaptor.create(SEC_END17);
adaptor.addChild(root_0, SEC_END17_tree);
}
break;
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "program"
public static class header_section_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "header_section"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:357:1: header_section : ( ( SEC_HEADER )? ) (opts= header_option )* ins= instruction_def -> ^( HEADER $opts $ins) ;
public final InchwormAsmParser.header_section_return header_section() throws RecognitionException {
InchwormAsmParser.header_section_return retval = new InchwormAsmParser.header_section_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SEC_HEADER18=null;
ParserRuleReturnScope opts =null;
ParserRuleReturnScope ins =null;
Object SEC_HEADER18_tree=null;
RewriteRuleTokenStream stream_SEC_HEADER=new RewriteRuleTokenStream(adaptor,"token SEC_HEADER");
RewriteRuleSubtreeStream stream_instruction_def=new RewriteRuleSubtreeStream(adaptor,"rule instruction_def");
RewriteRuleSubtreeStream stream_header_option=new RewriteRuleSubtreeStream(adaptor,"rule header_option");
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:358:2: ( ( ( SEC_HEADER )? ) (opts= header_option )* ins= instruction_def -> ^( HEADER $opts $ins) )
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:358:4: ( ( SEC_HEADER )? ) (opts= header_option )* ins= instruction_def
{
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:358:4: ( ( SEC_HEADER )? )
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:358:5: ( SEC_HEADER )?
{
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:358:5: ( SEC_HEADER )?
int alt7=2;
int LA7_0 = input.LA(1);
if ( (LA7_0==SEC_HEADER) ) {
alt7=1;
}
switch (alt7) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:358:5: SEC_HEADER
{
SEC_HEADER18=(Token)match(input,SEC_HEADER,FOLLOW_SEC_HEADER_in_header_section1383);
stream_SEC_HEADER.add(SEC_HEADER18);
}
break;
}
}
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:358:22: (opts= header_option )*
loop8:
while (true) {
int alt8=2;
int LA8_0 = input.LA(1);
if ( (LA8_0==COUNTERS||LA8_0==FRAMESIZE||(LA8_0 >= RAMLOADSIZE && LA8_0 <= RAMWORDSIZE)||LA8_0==REGPTRSIZE||LA8_0==ROMPTRSIZE||LA8_0==STACKPTRSIZE||LA8_0==WORDSIZE) ) {
alt8=1;
}
switch (alt8) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:358:22: opts= header_option
{
pushFollow(FOLLOW_header_option_in_header_section1389);
opts=header_option();
state._fsp--;
stream_header_option.add(opts.getTree());
}
break;
default :
break loop8;
}
}
pushFollow(FOLLOW_instruction_def_in_header_section1394);
ins=instruction_def();
state._fsp--;
stream_instruction_def.add(ins.getTree());
// AST REWRITE
// elements: ins, opts
// token labels:
// rule labels: opts, retval, ins
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_opts=new RewriteRuleSubtreeStream(adaptor,"rule opts",opts!=null?opts.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
RewriteRuleSubtreeStream stream_ins=new RewriteRuleSubtreeStream(adaptor,"rule ins",ins!=null?ins.getTree():null);
root_0 = (Object)adaptor.nil();
// 358:58: -> ^( HEADER $opts $ins)
{
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:358:61: ^( HEADER $opts $ins)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(HEADER, "HEADER"), root_1);
adaptor.addChild(root_1, stream_opts.nextTree());
adaptor.addChild(root_1, stream_ins.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "header_section"
public static class instruction_def_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "instruction_def"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:362:1: instruction_def : INSTRUCTIONDEF ( ( ':' )? ) ( opdesc )+ -> ^( INSTRUCTIONDEF ( opdesc )+ ) ;
public final InchwormAsmParser.instruction_def_return instruction_def() throws RecognitionException {
InchwormAsmParser.instruction_def_return retval = new InchwormAsmParser.instruction_def_return();
retval.start = input.LT(1);
Object root_0 = null;
Token INSTRUCTIONDEF19=null;
Token char_literal20=null;
ParserRuleReturnScope opdesc21 =null;
Object INSTRUCTIONDEF19_tree=null;
Object char_literal20_tree=null;
RewriteRuleTokenStream stream_INSTRUCTIONDEF=new RewriteRuleTokenStream(adaptor,"token INSTRUCTIONDEF");
RewriteRuleTokenStream stream_102=new RewriteRuleTokenStream(adaptor,"token 102");
RewriteRuleSubtreeStream stream_opdesc=new RewriteRuleSubtreeStream(adaptor,"rule opdesc");
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:363:2: ( INSTRUCTIONDEF ( ( ':' )? ) ( opdesc )+ -> ^( INSTRUCTIONDEF ( opdesc )+ ) )
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:363:4: INSTRUCTIONDEF ( ( ':' )? ) ( opdesc )+
{
INSTRUCTIONDEF19=(Token)match(input,INSTRUCTIONDEF,FOLLOW_INSTRUCTIONDEF_in_instruction_def1419);
stream_INSTRUCTIONDEF.add(INSTRUCTIONDEF19);
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:363:19: ( ( ':' )? )
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:363:20: ( ':' )?
{
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:363:20: ( ':' )?
int alt9=2;
int LA9_0 = input.LA(1);
if ( (LA9_0==102) ) {
alt9=1;
}
switch (alt9) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:363:20: ':'
{
char_literal20=(Token)match(input,102,FOLLOW_102_in_instruction_def1422);
stream_102.add(char_literal20);
}
break;
}
}
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:363:26: ( opdesc )+
int cnt10=0;
loop10:
while (true) {
int alt10=2;
int LA10_0 = input.LA(1);
if ( ((LA10_0 >= ADD && LA10_0 <= AND)||LA10_0==CALL||LA10_0==DIV||LA10_0==HALT||LA10_0==IN||(LA10_0 >= LOAD && LA10_0 <= LOADREG)||(LA10_0 >= MUL && LA10_0 <= NEXT)||(LA10_0 >= OR && LA10_0 <= OUT)||(LA10_0 >= RETURN && LA10_0 <= ROL)||(LA10_0 >= STAR && LA10_0 <= STOREREG)||LA10_0==SUB||(LA10_0 >= XOR && LA10_0 <= ZERO)) ) {
alt10=1;
}
switch (alt10) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:363:26: opdesc
{
pushFollow(FOLLOW_opdesc_in_instruction_def1426);
opdesc21=opdesc();
state._fsp--;
stream_opdesc.add(opdesc21.getTree());
}
break;
default :
if ( cnt10 >= 1 ) break loop10;
EarlyExitException eee = new EarlyExitException(10, input);
throw eee;
}
cnt10++;
}
params.setOpDescs(ops);
// AST REWRITE
// elements: opdesc, INSTRUCTIONDEF
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 363:62: -> ^( INSTRUCTIONDEF ( opdesc )+ )
{
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:363:65: ^( INSTRUCTIONDEF ( opdesc )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_INSTRUCTIONDEF.nextNode(), root_1);
if ( !(stream_opdesc.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_opdesc.hasNext() ) {
adaptor.addChild(root_1, stream_opdesc.nextTree());
}
stream_opdesc.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "instruction_def"
public static class opdesc_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "opdesc"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:366:1: opdesc : ( ( STAR )? opname ':' freq -> ^( OP opname freq ( STAR )? ) | ( STAR )? opname -> ^( OP opname NUM[\"1\"] ( STAR )? ) );
public final InchwormAsmParser.opdesc_return opdesc() throws RecognitionException {
InchwormAsmParser.opdesc_return retval = new InchwormAsmParser.opdesc_return();
retval.start = input.LT(1);
Object root_0 = null;
Token STAR22=null;
Token char_literal24=null;
Token STAR26=null;
ParserRuleReturnScope opname23 =null;
ParserRuleReturnScope freq25 =null;
ParserRuleReturnScope opname27 =null;
Object STAR22_tree=null;
Object char_literal24_tree=null;
Object STAR26_tree=null;
RewriteRuleTokenStream stream_102=new RewriteRuleTokenStream(adaptor,"token 102");
RewriteRuleTokenStream stream_STAR=new RewriteRuleTokenStream(adaptor,"token STAR");
RewriteRuleSubtreeStream stream_freq=new RewriteRuleSubtreeStream(adaptor,"rule freq");
RewriteRuleSubtreeStream stream_opname=new RewriteRuleSubtreeStream(adaptor,"rule opname");
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:367:3: ( ( STAR )? opname ':' freq -> ^( OP opname freq ( STAR )? ) | ( STAR )? opname -> ^( OP opname NUM[\"1\"] ( STAR )? ) )
int alt13=2;
int LA13_0 = input.LA(1);
if ( (LA13_0==STAR) ) {
int LA13_1 = input.LA(2);
if ( ((LA13_1 >= ADD && LA13_1 <= AND)||LA13_1==CALL||LA13_1==DIV||LA13_1==HALT||LA13_1==IN||(LA13_1 >= LOAD && LA13_1 <= LOADREG)||(LA13_1 >= MUL && LA13_1 <= NEXT)||(LA13_1 >= OR && LA13_1 <= OUT)||(LA13_1 >= RETURN && LA13_1 <= ROL)||(LA13_1 >= STORE && LA13_1 <= STOREREG)||LA13_1==SUB||(LA13_1 >= XOR && LA13_1 <= ZERO)) ) {
int LA13_2 = input.LA(3);
if ( (LA13_2==102) ) {
alt13=1;
}
else if ( (LA13_2==EOF||(LA13_2 >= ADD && LA13_2 <= AND)||LA13_2==CALL||LA13_2==DIV||LA13_2==HALT||LA13_2==IN||(LA13_2 >= LOAD && LA13_2 <= LOADREG)||(LA13_2 >= MUL && LA13_2 <= NEXT)||(LA13_2 >= OR && LA13_2 <= OUT)||(LA13_2 >= RETURN && LA13_2 <= ROL)||(LA13_2 >= SEC_CODE && LA13_2 <= SEC_END)||LA13_2==SEC_RAM||(LA13_2 >= STAR && LA13_2 <= STOREREG)||LA13_2==SUB||(LA13_2 >= XOR && LA13_2 <= ZERO)) ) {
alt13=2;
}
else {
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 13, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 13, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( ((LA13_0 >= ADD && LA13_0 <= AND)||LA13_0==CALL||LA13_0==DIV||LA13_0==HALT||LA13_0==IN||(LA13_0 >= LOAD && LA13_0 <= LOADREG)||(LA13_0 >= MUL && LA13_0 <= NEXT)||(LA13_0 >= OR && LA13_0 <= OUT)||(LA13_0 >= RETURN && LA13_0 <= ROL)||(LA13_0 >= STORE && LA13_0 <= STOREREG)||LA13_0==SUB||(LA13_0 >= XOR && LA13_0 <= ZERO)) ) {
int LA13_2 = input.LA(2);
if ( (LA13_2==102) ) {
alt13=1;
}
else if ( (LA13_2==EOF||(LA13_2 >= ADD && LA13_2 <= AND)||LA13_2==CALL||LA13_2==DIV||LA13_2==HALT||LA13_2==IN||(LA13_2 >= LOAD && LA13_2 <= LOADREG)||(LA13_2 >= MUL && LA13_2 <= NEXT)||(LA13_2 >= OR && LA13_2 <= OUT)||(LA13_2 >= RETURN && LA13_2 <= ROL)||(LA13_2 >= SEC_CODE && LA13_2 <= SEC_END)||LA13_2==SEC_RAM||(LA13_2 >= STAR && LA13_2 <= STOREREG)||LA13_2==SUB||(LA13_2 >= XOR && LA13_2 <= ZERO)) ) {
alt13=2;
}
else {
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 13, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
NoViableAltException nvae =
new NoViableAltException("", 13, 0, input);
throw nvae;
}
switch (alt13) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:367:5: ( STAR )? opname ':' freq
{
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:367:5: ( STAR )?
int alt11=2;
int LA11_0 = input.LA(1);
if ( (LA11_0==STAR) ) {
alt11=1;
}
switch (alt11) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:367:5: STAR
{
STAR22=(Token)match(input,STAR,FOLLOW_STAR_in_opdesc1451);
stream_STAR.add(STAR22);
}
break;
}
pushFollow(FOLLOW_opname_in_opdesc1454);
opname23=opname();
state._fsp--;
stream_opname.add(opname23.getTree());
char_literal24=(Token)match(input,102,FOLLOW_102_in_opdesc1456);
stream_102.add(char_literal24);
pushFollow(FOLLOW_freq_in_opdesc1458);
freq25=freq();
state._fsp--;
stream_freq.add(freq25.getTree());
ops.add(new OpDesc(getDefaultDesc(Op.getEnum((opname23!=null?input.toString(opname23.start,opname23.stop):null))), Integer.parseInt((freq25!=null?input.toString(freq25.start,freq25.stop):null), 16)));
opInfo.add(new ExtraOpInfo(STAR22 != null));
// AST REWRITE
// elements: opname, STAR, freq
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 369:52: -> ^( OP opname freq ( STAR )? )
{
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:369:55: ^( OP opname freq ( STAR )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OP, "OP"), root_1);
adaptor.addChild(root_1, stream_opname.nextTree());
adaptor.addChild(root_1, stream_freq.nextTree());
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:369:72: ( STAR )?
if ( stream_STAR.hasNext() ) {
adaptor.addChild(root_1, stream_STAR.nextNode());
}
stream_STAR.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
break;
case 2 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:370:4: ( STAR )? opname
{
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:370:4: ( STAR )?
int alt12=2;
int LA12_0 = input.LA(1);
if ( (LA12_0==STAR) ) {
alt12=1;
}
switch (alt12) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:370:4: STAR
{
STAR26=(Token)match(input,STAR,FOLLOW_STAR_in_opdesc1484);
stream_STAR.add(STAR26);
}
break;
}
pushFollow(FOLLOW_opname_in_opdesc1487);
opname27=opname();
state._fsp--;
stream_opname.add(opname27.getTree());
ops.add(getDefaultDesc(Op.getEnum((opname27!=null?input.toString(opname27.start,opname27.stop):null))));
opInfo.add(new ExtraOpInfo(STAR26 != null));
// AST REWRITE
// elements: opname, STAR
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 372:51: -> ^( OP opname NUM[\"1\"] ( STAR )? )
{
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:372:54: ^( OP opname NUM[\"1\"] ( STAR )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OP, "OP"), root_1);
adaptor.addChild(root_1, stream_opname.nextTree());
adaptor.addChild(root_1, (Object)adaptor.create(NUM, "1"));
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:372:75: ( STAR )?
if ( stream_STAR.hasNext() ) {
adaptor.addChild(root_1, stream_STAR.nextNode());
}
stream_STAR.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
break;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "opdesc"
public static class opname_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "opname"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:375:1: opname : ( ZERO | XORI | XOR | OR | ADD | SUB | ROL | AND | MUL | DIV | LOAD | STORE | LOADREG | STOREREG | OUT | IN | HALT | MUX | CALL | RETURN | NEXT );
public final InchwormAsmParser.opname_return opname() throws RecognitionException {
InchwormAsmParser.opname_return retval = new InchwormAsmParser.opname_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set28=null;
Object set28_tree=null;
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:375:9: ( ZERO | XORI | XOR | OR | ADD | SUB | ROL | AND | MUL | DIV | LOAD | STORE | LOADREG | STOREREG | OUT | IN | HALT | MUX | CALL | RETURN | NEXT )
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:
{
root_0 = (Object)adaptor.nil();
set28=input.LT(1);
if ( (input.LA(1) >= ADD && input.LA(1) <= AND)||input.LA(1)==CALL||input.LA(1)==DIV||input.LA(1)==HALT||input.LA(1)==IN||(input.LA(1) >= LOAD && input.LA(1) <= LOADREG)||(input.LA(1) >= MUL && input.LA(1) <= NEXT)||(input.LA(1) >= OR && input.LA(1) <= OUT)||(input.LA(1) >= RETURN && input.LA(1) <= ROL)||(input.LA(1) >= STORE && input.LA(1) <= STOREREG)||input.LA(1)==SUB||(input.LA(1) >= XOR && input.LA(1) <= ZERO) ) {
input.consume();
adaptor.addChild(root_0, (Object)adaptor.create(set28));
state.errorRecovery=false;
}
else {
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "opname"
public static class freq_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "freq"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:379:1: freq : num ;
public final InchwormAsmParser.freq_return freq() throws RecognitionException {
InchwormAsmParser.freq_return retval = new InchwormAsmParser.freq_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope num29 =null;
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:379:6: ( num )
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:379:8: num
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_num_in_freq1619);
num29=num();
state._fsp--;
adaptor.addChild(root_0, num29.getTree());
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "freq"
public static class header_option_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "header_option"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:382:1: header_option : ( WORDSIZE ( ':' )? num -> ^( OPTION WORDSIZE num ) | RAMWORDSIZE ( ':' )? num -> ^( OPTION RAMWORDSIZE num ) | REGPTRSIZE ( ':' )? num -> ^( OPTION REGPTRSIZE num ) | ROMPTRSIZE ( ':' )? num -> ^( OPTION ROMPTRSIZE num ) | RAMPTRSIZE ( ':' )? num -> ^( OPTION RAMPTRSIZE num ) | RAMLOADSIZE ( ':' )? num -> ^( OPTION RAMLOADSIZE num ) | STACKPTRSIZE ( ':' )? num -> ^( OPTION STACKPTRSIZE num ) | FRAMESIZE ( ':' )? num -> ^( OPTION FRAMESIZE num ) | COUNTERS ( ':' )? ( countermodulus )+ -> ^( OPTION COUNTERS ( countermodulus )+ ) );
public final InchwormAsmParser.header_option_return header_option() throws RecognitionException {
InchwormAsmParser.header_option_return retval = new InchwormAsmParser.header_option_return();
retval.start = input.LT(1);
Object root_0 = null;
Token WORDSIZE30=null;
Token char_literal31=null;
Token RAMWORDSIZE33=null;
Token char_literal34=null;
Token REGPTRSIZE36=null;
Token char_literal37=null;
Token ROMPTRSIZE39=null;
Token char_literal40=null;
Token RAMPTRSIZE42=null;
Token char_literal43=null;
Token RAMLOADSIZE45=null;
Token char_literal46=null;
Token STACKPTRSIZE48=null;
Token char_literal49=null;
Token FRAMESIZE51=null;
Token char_literal52=null;
Token COUNTERS54=null;
Token char_literal55=null;
ParserRuleReturnScope num32 =null;
ParserRuleReturnScope num35 =null;
ParserRuleReturnScope num38 =null;
ParserRuleReturnScope num41 =null;
ParserRuleReturnScope num44 =null;
ParserRuleReturnScope num47 =null;
ParserRuleReturnScope num50 =null;
ParserRuleReturnScope num53 =null;
ParserRuleReturnScope countermodulus56 =null;
Object WORDSIZE30_tree=null;
Object char_literal31_tree=null;
Object RAMWORDSIZE33_tree=null;
Object char_literal34_tree=null;
Object REGPTRSIZE36_tree=null;
Object char_literal37_tree=null;
Object ROMPTRSIZE39_tree=null;
Object char_literal40_tree=null;
Object RAMPTRSIZE42_tree=null;
Object char_literal43_tree=null;
Object RAMLOADSIZE45_tree=null;
Object char_literal46_tree=null;
Object STACKPTRSIZE48_tree=null;
Object char_literal49_tree=null;
Object FRAMESIZE51_tree=null;
Object char_literal52_tree=null;
Object COUNTERS54_tree=null;
Object char_literal55_tree=null;
RewriteRuleTokenStream stream_102=new RewriteRuleTokenStream(adaptor,"token 102");
RewriteRuleTokenStream stream_REGPTRSIZE=new RewriteRuleTokenStream(adaptor,"token REGPTRSIZE");
RewriteRuleTokenStream stream_RAMPTRSIZE=new RewriteRuleTokenStream(adaptor,"token RAMPTRSIZE");
RewriteRuleTokenStream stream_RAMLOADSIZE=new RewriteRuleTokenStream(adaptor,"token RAMLOADSIZE");
RewriteRuleTokenStream stream_RAMWORDSIZE=new RewriteRuleTokenStream(adaptor,"token RAMWORDSIZE");
RewriteRuleTokenStream stream_STACKPTRSIZE=new RewriteRuleTokenStream(adaptor,"token STACKPTRSIZE");
RewriteRuleTokenStream stream_FRAMESIZE=new RewriteRuleTokenStream(adaptor,"token FRAMESIZE");
RewriteRuleTokenStream stream_ROMPTRSIZE=new RewriteRuleTokenStream(adaptor,"token ROMPTRSIZE");
RewriteRuleTokenStream stream_WORDSIZE=new RewriteRuleTokenStream(adaptor,"token WORDSIZE");
RewriteRuleTokenStream stream_COUNTERS=new RewriteRuleTokenStream(adaptor,"token COUNTERS");
RewriteRuleSubtreeStream stream_num=new RewriteRuleSubtreeStream(adaptor,"rule num");
RewriteRuleSubtreeStream stream_countermodulus=new RewriteRuleSubtreeStream(adaptor,"rule countermodulus");
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:383:2: ( WORDSIZE ( ':' )? num -> ^( OPTION WORDSIZE num ) | RAMWORDSIZE ( ':' )? num -> ^( OPTION RAMWORDSIZE num ) | REGPTRSIZE ( ':' )? num -> ^( OPTION REGPTRSIZE num ) | ROMPTRSIZE ( ':' )? num -> ^( OPTION ROMPTRSIZE num ) | RAMPTRSIZE ( ':' )? num -> ^( OPTION RAMPTRSIZE num ) | RAMLOADSIZE ( ':' )? num -> ^( OPTION RAMLOADSIZE num ) | STACKPTRSIZE ( ':' )? num -> ^( OPTION STACKPTRSIZE num ) | FRAMESIZE ( ':' )? num -> ^( OPTION FRAMESIZE num ) | COUNTERS ( ':' )? ( countermodulus )+ -> ^( OPTION COUNTERS ( countermodulus )+ ) )
int alt24=9;
switch ( input.LA(1) ) {
case WORDSIZE:
{
alt24=1;
}
break;
case RAMWORDSIZE:
{
alt24=2;
}
break;
case REGPTRSIZE:
{
alt24=3;
}
break;
case ROMPTRSIZE:
{
alt24=4;
}
break;
case RAMPTRSIZE:
{
alt24=5;
}
break;
case RAMLOADSIZE:
{
alt24=6;
}
break;
case STACKPTRSIZE:
{
alt24=7;
}
break;
case FRAMESIZE:
{
alt24=8;
}
break;
case COUNTERS:
{
alt24=9;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 24, 0, input);
throw nvae;
}
switch (alt24) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:383:4: WORDSIZE ( ':' )? num
{
WORDSIZE30=(Token)match(input,WORDSIZE,FOLLOW_WORDSIZE_in_header_option1633);
stream_WORDSIZE.add(WORDSIZE30);
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:383:13: ( ':' )?
int alt14=2;
int LA14_0 = input.LA(1);
if ( (LA14_0==102) ) {
alt14=1;
}
switch (alt14) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:383:13: ':'
{
char_literal31=(Token)match(input,102,FOLLOW_102_in_header_option1635);
stream_102.add(char_literal31);
}
break;
}
pushFollow(FOLLOW_num_in_header_option1638);
num32=num();
state._fsp--;
stream_num.add(num32.getTree());
params.setWordSize(Integer.parseInt((num32!=null?input.toString(num32.start,num32.stop):null), 16));
// AST REWRITE
// elements: WORDSIZE, num
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 383:77: -> ^( OPTION WORDSIZE num )
{
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:383:80: ^( OPTION WORDSIZE num )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPTION, "OPTION"), root_1);
adaptor.addChild(root_1, stream_WORDSIZE.nextNode());
adaptor.addChild(root_1, stream_num.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
break;
case 2 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:384:4: RAMWORDSIZE ( ':' )? num
{
RAMWORDSIZE33=(Token)match(input,RAMWORDSIZE,FOLLOW_RAMWORDSIZE_in_header_option1655);
stream_RAMWORDSIZE.add(RAMWORDSIZE33);
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:384:16: ( ':' )?
int alt15=2;
int LA15_0 = input.LA(1);
if ( (LA15_0==102) ) {
alt15=1;
}
switch (alt15) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:384:16: ':'
{
char_literal34=(Token)match(input,102,FOLLOW_102_in_header_option1657);
stream_102.add(char_literal34);
}
break;
}
pushFollow(FOLLOW_num_in_header_option1660);
num35=num();
state._fsp--;
stream_num.add(num35.getTree());
params.setRamWordSize(Integer.parseInt((num35!=null?input.toString(num35.start,num35.stop):null), 16));
// AST REWRITE
// elements: num, RAMWORDSIZE
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 384:83: -> ^( OPTION RAMWORDSIZE num )
{
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:384:86: ^( OPTION RAMWORDSIZE num )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPTION, "OPTION"), root_1);
adaptor.addChild(root_1, stream_RAMWORDSIZE.nextNode());
adaptor.addChild(root_1, stream_num.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
break;
case 3 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:385:4: REGPTRSIZE ( ':' )? num
{
REGPTRSIZE36=(Token)match(input,REGPTRSIZE,FOLLOW_REGPTRSIZE_in_header_option1677);
stream_REGPTRSIZE.add(REGPTRSIZE36);
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:385:15: ( ':' )?
int alt16=2;
int LA16_0 = input.LA(1);
if ( (LA16_0==102) ) {
alt16=1;
}
switch (alt16) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:385:15: ':'
{
char_literal37=(Token)match(input,102,FOLLOW_102_in_header_option1679);
stream_102.add(char_literal37);
}
break;
}
pushFollow(FOLLOW_num_in_header_option1682);
num38=num();
state._fsp--;
stream_num.add(num38.getTree());
params.setRegPtrSize(Integer.parseInt((num38!=null?input.toString(num38.start,num38.stop):null), 16));
// AST REWRITE
// elements: num, REGPTRSIZE
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 385:81: -> ^( OPTION REGPTRSIZE num )
{
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:385:84: ^( OPTION REGPTRSIZE num )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPTION, "OPTION"), root_1);
adaptor.addChild(root_1, stream_REGPTRSIZE.nextNode());
adaptor.addChild(root_1, stream_num.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
break;
case 4 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:386:4: ROMPTRSIZE ( ':' )? num
{
ROMPTRSIZE39=(Token)match(input,ROMPTRSIZE,FOLLOW_ROMPTRSIZE_in_header_option1699);
stream_ROMPTRSIZE.add(ROMPTRSIZE39);
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:386:15: ( ':' )?
int alt17=2;
int LA17_0 = input.LA(1);
if ( (LA17_0==102) ) {
alt17=1;
}
switch (alt17) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:386:15: ':'
{
char_literal40=(Token)match(input,102,FOLLOW_102_in_header_option1701);
stream_102.add(char_literal40);
}
break;
}
pushFollow(FOLLOW_num_in_header_option1704);
num41=num();
state._fsp--;
stream_num.add(num41.getTree());
params.setRomPtrSize(Integer.parseInt((num41!=null?input.toString(num41.start,num41.stop):null), 16));
// AST REWRITE
// elements: ROMPTRSIZE, num
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 386:81: -> ^( OPTION ROMPTRSIZE num )
{
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:386:84: ^( OPTION ROMPTRSIZE num )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPTION, "OPTION"), root_1);
adaptor.addChild(root_1, stream_ROMPTRSIZE.nextNode());
adaptor.addChild(root_1, stream_num.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
break;
case 5 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:387:4: RAMPTRSIZE ( ':' )? num
{
RAMPTRSIZE42=(Token)match(input,RAMPTRSIZE,FOLLOW_RAMPTRSIZE_in_header_option1721);
stream_RAMPTRSIZE.add(RAMPTRSIZE42);
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:387:15: ( ':' )?
int alt18=2;
int LA18_0 = input.LA(1);
if ( (LA18_0==102) ) {
alt18=1;
}
switch (alt18) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:387:15: ':'
{
char_literal43=(Token)match(input,102,FOLLOW_102_in_header_option1723);
stream_102.add(char_literal43);
}
break;
}
pushFollow(FOLLOW_num_in_header_option1726);
num44=num();
state._fsp--;
stream_num.add(num44.getTree());
params.setRamPtrSize(Integer.parseInt((num44!=null?input.toString(num44.start,num44.stop):null), 16));
// AST REWRITE
// elements: RAMPTRSIZE, num
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 387:81: -> ^( OPTION RAMPTRSIZE num )
{
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:387:84: ^( OPTION RAMPTRSIZE num )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPTION, "OPTION"), root_1);
adaptor.addChild(root_1, stream_RAMPTRSIZE.nextNode());
adaptor.addChild(root_1, stream_num.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
break;
case 6 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:388:4: RAMLOADSIZE ( ':' )? num
{
RAMLOADSIZE45=(Token)match(input,RAMLOADSIZE,FOLLOW_RAMLOADSIZE_in_header_option1743);
stream_RAMLOADSIZE.add(RAMLOADSIZE45);
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:388:16: ( ':' )?
int alt19=2;
int LA19_0 = input.LA(1);
if ( (LA19_0==102) ) {
alt19=1;
}
switch (alt19) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:388:16: ':'
{
char_literal46=(Token)match(input,102,FOLLOW_102_in_header_option1745);
stream_102.add(char_literal46);
}
break;
}
pushFollow(FOLLOW_num_in_header_option1748);
num47=num();
state._fsp--;
stream_num.add(num47.getTree());
params.setRamLoadSize(Integer.parseInt((num47!=null?input.toString(num47.start,num47.stop):null), 16));
if (Integer.bitCount(params.getRamLoadSize()) != 1)
throw new SyntaxError("Ram loadsize must be a power of 2!", this.input);
if (params.getRamSize() % params.getRamLoadSize() != 0)
throw new SyntaxError("Ram loadsize must divide ram size!", this.input);
// AST REWRITE
// elements: RAMLOADSIZE, num
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 394:8: -> ^( OPTION RAMLOADSIZE num )
{
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:394:11: ^( OPTION RAMLOADSIZE num )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPTION, "OPTION"), root_1);
adaptor.addChild(root_1, stream_RAMLOADSIZE.nextNode());
adaptor.addChild(root_1, stream_num.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
break;
case 7 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:395:4: STACKPTRSIZE ( ':' )? num
{
STACKPTRSIZE48=(Token)match(input,STACKPTRSIZE,FOLLOW_STACKPTRSIZE_in_header_option1765);
stream_STACKPTRSIZE.add(STACKPTRSIZE48);
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:395:17: ( ':' )?
int alt20=2;
int LA20_0 = input.LA(1);
if ( (LA20_0==102) ) {
alt20=1;
}
switch (alt20) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:395:17: ':'
{
char_literal49=(Token)match(input,102,FOLLOW_102_in_header_option1767);
stream_102.add(char_literal49);
}
break;
}
pushFollow(FOLLOW_num_in_header_option1770);
num50=num();
state._fsp--;
stream_num.add(num50.getTree());
params.setStackPtrSize(Integer.parseInt((num50!=null?input.toString(num50.start,num50.stop):null), 16));
// AST REWRITE
// elements: num, STACKPTRSIZE
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 395:85: -> ^( OPTION STACKPTRSIZE num )
{
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:395:88: ^( OPTION STACKPTRSIZE num )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPTION, "OPTION"), root_1);
adaptor.addChild(root_1, stream_STACKPTRSIZE.nextNode());
adaptor.addChild(root_1, stream_num.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
break;
case 8 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:396:4: FRAMESIZE ( ':' )? num
{
FRAMESIZE51=(Token)match(input,FRAMESIZE,FOLLOW_FRAMESIZE_in_header_option1787);
stream_FRAMESIZE.add(FRAMESIZE51);
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:396:14: ( ':' )?
int alt21=2;
int LA21_0 = input.LA(1);
if ( (LA21_0==102) ) {
alt21=1;
}
switch (alt21) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:396:14: ':'
{
char_literal52=(Token)match(input,102,FOLLOW_102_in_header_option1789);
stream_102.add(char_literal52);
}
break;
}
pushFollow(FOLLOW_num_in_header_option1792);
num53=num();
state._fsp--;
stream_num.add(num53.getTree());
params.setFrameSize(Integer.parseInt((num53!=null?input.toString(num53.start,num53.stop):null), 16));
// AST REWRITE
// elements: num, FRAMESIZE
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 396:79: -> ^( OPTION FRAMESIZE num )
{
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:396:82: ^( OPTION FRAMESIZE num )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPTION, "OPTION"), root_1);
adaptor.addChild(root_1, stream_FRAMESIZE.nextNode());
adaptor.addChild(root_1, stream_num.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
break;
case 9 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:397:4: COUNTERS ( ':' )? ( countermodulus )+
{
COUNTERS54=(Token)match(input,COUNTERS,FOLLOW_COUNTERS_in_header_option1809);
stream_COUNTERS.add(COUNTERS54);
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:397:13: ( ':' )?
int alt22=2;
int LA22_0 = input.LA(1);
if ( (LA22_0==102) ) {
alt22=1;
}
switch (alt22) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:397:13: ':'
{
char_literal55=(Token)match(input,102,FOLLOW_102_in_header_option1811);
stream_102.add(char_literal55);
}
break;
}
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:397:18: ( countermodulus )+
int cnt23=0;
loop23:
while (true) {
int alt23=2;
int LA23_0 = input.LA(1);
if ( (LA23_0==BINARY_LITERAL||LA23_0==DECIMAL_LITERAL||LA23_0==HEX_LITERAL) ) {
alt23=1;
}
switch (alt23) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:397:18: countermodulus
{
pushFollow(FOLLOW_countermodulus_in_header_option1814);
countermodulus56=countermodulus();
state._fsp--;
stream_countermodulus.add(countermodulus56.getTree());
}
break;
default :
if ( cnt23 >= 1 ) break loop23;
EarlyExitException eee = new EarlyExitException(23, input);
throw eee;
}
cnt23++;
}
// AST REWRITE
// elements: countermodulus, COUNTERS
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 397:34: -> ^( OPTION COUNTERS ( countermodulus )+ )
{
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:397:37: ^( OPTION COUNTERS ( countermodulus )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPTION, "OPTION"), root_1);
adaptor.addChild(root_1, stream_COUNTERS.nextNode());
if ( !(stream_countermodulus.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_countermodulus.hasNext() ) {
adaptor.addChild(root_1, stream_countermodulus.nextTree());
}
stream_countermodulus.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
break;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "header_option"
public static class countermodulus_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "countermodulus"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:400:1: countermodulus : num ( ( ',' )? ) ;
public final InchwormAsmParser.countermodulus_return countermodulus() throws RecognitionException {
InchwormAsmParser.countermodulus_return retval = new InchwormAsmParser.countermodulus_return();
retval.start = input.LT(1);
Object root_0 = null;
Token char_literal58=null;
ParserRuleReturnScope num57 =null;
Object char_literal58_tree=null;
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:401:3: ( num ( ( ',' )? ) )
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:401:5: num ( ( ',' )? )
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_num_in_countermodulus1840);
num57=num();
state._fsp--;
adaptor.addChild(root_0, num57.getTree());
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:401:9: ( ( ',' )? )
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:401:10: ( ',' )?
{
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:401:10: ( ',' )?
int alt25=2;
int LA25_0 = input.LA(1);
if ( (LA25_0==99) ) {
alt25=1;
}
switch (alt25) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:401:10: ','
{
char_literal58=(Token)match(input,99,FOLLOW_99_in_countermodulus1843);
char_literal58_tree = (Object)adaptor.create(char_literal58);
adaptor.addChild(root_0, char_literal58_tree);
}
break;
}
}
params.addCounter(Integer.parseInt((num57!=null?input.toString(num57.start,num57.stop):null), 16));
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "countermodulus"
public static class const_section_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "const_section"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:404:1: const_section : SEC_CONST ( const_def )* -> ^( CONST ( const_def )* ) ;
public final InchwormAsmParser.const_section_return const_section() throws RecognitionException {
InchwormAsmParser.const_section_return retval = new InchwormAsmParser.const_section_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SEC_CONST59=null;
ParserRuleReturnScope const_def60 =null;
Object SEC_CONST59_tree=null;
RewriteRuleTokenStream stream_SEC_CONST=new RewriteRuleTokenStream(adaptor,"token SEC_CONST");
RewriteRuleSubtreeStream stream_const_def=new RewriteRuleSubtreeStream(adaptor,"rule const_def");
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:405:2: ( SEC_CONST ( const_def )* -> ^( CONST ( const_def )* ) )
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:405:5: SEC_CONST ( const_def )*
{
SEC_CONST59=(Token)match(input,SEC_CONST,FOLLOW_SEC_CONST_in_const_section1862);
stream_SEC_CONST.add(SEC_CONST59);
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:405:15: ( const_def )*
loop26:
while (true) {
int alt26=2;
int LA26_0 = input.LA(1);
if ( (LA26_0==CARRY||(LA26_0 >= CTRL && LA26_0 <= CTR_FLAG)||LA26_0==FLAGS||LA26_0==FREEREGS||(LA26_0 >= ID && LA26_0 <= IN)||LA26_0==IP||LA26_0==LOCAL_REG||LA26_0==NOP||(LA26_0 >= OUT1 && LA26_0 <= OVERFLOW)||LA26_0==SIGN||LA26_0==ZERO) ) {
alt26=1;
}
switch (alt26) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:405:15: const_def
{
pushFollow(FOLLOW_const_def_in_const_section1864);
const_def60=const_def();
state._fsp--;
stream_const_def.add(const_def60.getTree());
}
break;
default :
break loop26;
}
}
// AST REWRITE
// elements: const_def
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 405:26: -> ^( CONST ( const_def )* )
{
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:405:29: ^( CONST ( const_def )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(CONST, "CONST"), root_1);
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:405:37: ( const_def )*
while ( stream_const_def.hasNext() ) {
adaptor.addChild(root_1, stream_const_def.nextTree());
}
stream_const_def.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "const_section"
public static class const_def_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "const_def"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:408:1: const_def : ( reserved_label ( '=' | 'db' ) ! const_expr | ID ( '=' | 'db' ) ! const_expr -> ^( ID const_expr ) );
public final InchwormAsmParser.const_def_return const_def() throws RecognitionException {
InchwormAsmParser.const_def_return retval = new InchwormAsmParser.const_def_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set62=null;
Token ID64=null;
Token char_literal65=null;
Token string_literal66=null;
ParserRuleReturnScope reserved_label61 =null;
ParserRuleReturnScope const_expr63 =null;
ParserRuleReturnScope const_expr67 =null;
Object set62_tree=null;
Object ID64_tree=null;
Object char_literal65_tree=null;
Object string_literal66_tree=null;
RewriteRuleTokenStream stream_110=new RewriteRuleTokenStream(adaptor,"token 110");
RewriteRuleTokenStream stream_105=new RewriteRuleTokenStream(adaptor,"token 105");
RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
RewriteRuleSubtreeStream stream_const_expr=new RewriteRuleSubtreeStream(adaptor,"rule const_expr");
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:409:3: ( reserved_label ( '=' | 'db' ) ! const_expr | ID ( '=' | 'db' ) ! const_expr -> ^( ID const_expr ) )
int alt28=2;
int LA28_0 = input.LA(1);
if ( (LA28_0==CARRY||(LA28_0 >= CTRL && LA28_0 <= CTR_FLAG)||LA28_0==FLAGS||LA28_0==FREEREGS||LA28_0==IN||LA28_0==IP||LA28_0==LOCAL_REG||LA28_0==NOP||(LA28_0 >= OUT1 && LA28_0 <= OVERFLOW)||LA28_0==SIGN||LA28_0==ZERO) ) {
alt28=1;
}
else if ( (LA28_0==ID) ) {
alt28=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("", 28, 0, input);
throw nvae;
}
switch (alt28) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:409:5: reserved_label ( '=' | 'db' ) ! const_expr
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_reserved_label_in_const_def1886);
reserved_label61=reserved_label();
state._fsp--;
adaptor.addChild(root_0, reserved_label61.getTree());
set62=input.LT(1);
if ( input.LA(1)==105||input.LA(1)==110 ) {
input.consume();
state.errorRecovery=false;
}
else {
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
pushFollow(FOLLOW_const_expr_in_const_def1895);
const_expr63=const_expr();
state._fsp--;
adaptor.addChild(root_0, const_expr63.getTree());
if (true)
throw new SyntaxError("Attempt to redefine reserved label: " + (reserved_label61!=null?input.toString(reserved_label61.start,reserved_label61.stop):null), this.input);
}
break;
case 2 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:413:4: ID ( '=' | 'db' ) ! const_expr
{
ID64=(Token)match(input,ID,FOLLOW_ID_in_const_def1902);
stream_ID.add(ID64);
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:413:7: ( '=' | 'db' )
int alt27=2;
int LA27_0 = input.LA(1);
if ( (LA27_0==105) ) {
alt27=1;
}
else if ( (LA27_0==110) ) {
alt27=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("", 27, 0, input);
throw nvae;
}
switch (alt27) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:413:8: '='
{
char_literal65=(Token)match(input,105,FOLLOW_105_in_const_def1905);
stream_105.add(char_literal65);
}
break;
case 2 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:413:12: 'db'
{
string_literal66=(Token)match(input,110,FOLLOW_110_in_const_def1907);
stream_110.add(string_literal66);
}
break;
}
pushFollow(FOLLOW_const_expr_in_const_def1911);
const_expr67=const_expr();
state._fsp--;
stream_const_expr.add(const_expr67.getTree());
// AST REWRITE
// elements: ID, const_expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 413:30: -> ^( ID const_expr )
{
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:413:33: ^( ID const_expr )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_ID.nextNode(), root_1);
adaptor.addChild(root_1, stream_const_expr.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
break;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "const_def"
public static class data_section_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "data_section"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:416:1: data_section : SEC_DATA ( data_def )* -> ^( DATA ( data_def )* ) ;
public final InchwormAsmParser.data_section_return data_section() throws RecognitionException {
InchwormAsmParser.data_section_return retval = new InchwormAsmParser.data_section_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SEC_DATA68=null;
ParserRuleReturnScope data_def69 =null;
Object SEC_DATA68_tree=null;
RewriteRuleTokenStream stream_SEC_DATA=new RewriteRuleTokenStream(adaptor,"token SEC_DATA");
RewriteRuleSubtreeStream stream_data_def=new RewriteRuleSubtreeStream(adaptor,"rule data_def");
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:417:3: ( SEC_DATA ( data_def )* -> ^( DATA ( data_def )* ) )
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:417:5: SEC_DATA ( data_def )*
{
SEC_DATA68=(Token)match(input,SEC_DATA,FOLLOW_SEC_DATA_in_data_section1931);
stream_SEC_DATA.add(SEC_DATA68);
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:417:14: ( data_def )*
loop29:
while (true) {
int alt29=2;
int LA29_0 = input.LA(1);
if ( (LA29_0==BINARY_LITERAL||LA29_0==CARRY||(LA29_0 >= CTRL && LA29_0 <= CTR_FLAG)||LA29_0==CURRENT_POS||LA29_0==DECIMAL_LITERAL||LA29_0==FLAGS||LA29_0==FREEREGS||(LA29_0 >= HEX_LITERAL && LA29_0 <= IN)||LA29_0==IP||LA29_0==LOCAL_REG||LA29_0==NOP||(LA29_0 >= OUT1 && LA29_0 <= PERCENT)||LA29_0==REG_PREFIX||LA29_0==SIGN||LA29_0==STRING||LA29_0==ZERO||LA29_0==96||LA29_0==100) ) {
alt29=1;
}
switch (alt29) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:417:14: data_def
{
pushFollow(FOLLOW_data_def_in_data_section1933);
data_def69=data_def();
state._fsp--;
stream_data_def.add(data_def69.getTree());
}
break;
default :
break loop29;
}
}
// AST REWRITE
// elements: data_def
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 417:24: -> ^( DATA ( data_def )* )
{
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:417:27: ^( DATA ( data_def )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(DATA, "DATA"), root_1);
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:417:34: ( data_def )*
while ( stream_data_def.hasNext() ) {
adaptor.addChild(root_1, stream_data_def.nextTree());
}
stream_data_def.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "data_section"
public static class data_def_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "data_def"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:421:1: data_def : ( reserved_label ':' | ID ':' -> ID | current_pos_ref | reg ( ':' | '=' | 'db' ) -> reg | STRING ( ( ',' )? ) -> STRING | '-' num ( ( ',' )? ) -> ^( C_UNARY_MINUS num ) | num ( ( ',' )? ) -> num | '(' const_expr ')' ( ( ',' )? ) -> const_expr );
public final InchwormAsmParser.data_def_return data_def() throws RecognitionException {
InchwormAsmParser.data_def_return retval = new InchwormAsmParser.data_def_return();
retval.start = input.LT(1);
Object root_0 = null;
Token char_literal71=null;
Token ID72=null;
Token char_literal73=null;
Token char_literal76=null;
Token char_literal77=null;
Token string_literal78=null;
Token STRING79=null;
Token char_literal80=null;
Token char_literal81=null;
Token char_literal83=null;
Token char_literal85=null;
Token char_literal86=null;
Token char_literal88=null;
Token char_literal89=null;
ParserRuleReturnScope reserved_label70 =null;
ParserRuleReturnScope current_pos_ref74 =null;
ParserRuleReturnScope reg75 =null;
ParserRuleReturnScope num82 =null;
ParserRuleReturnScope num84 =null;
ParserRuleReturnScope const_expr87 =null;
Object char_literal71_tree=null;
Object ID72_tree=null;
Object char_literal73_tree=null;
Object char_literal76_tree=null;
Object char_literal77_tree=null;
Object string_literal78_tree=null;
Object STRING79_tree=null;
Object char_literal80_tree=null;
Object char_literal81_tree=null;
Object char_literal83_tree=null;
Object char_literal85_tree=null;
Object char_literal86_tree=null;
Object char_literal88_tree=null;
Object char_literal89_tree=null;
RewriteRuleTokenStream stream_110=new RewriteRuleTokenStream(adaptor,"token 110");
RewriteRuleTokenStream stream_99=new RewriteRuleTokenStream(adaptor,"token 99");
RewriteRuleTokenStream stream_100=new RewriteRuleTokenStream(adaptor,"token 100");
RewriteRuleTokenStream stream_102=new RewriteRuleTokenStream(adaptor,"token 102");
RewriteRuleTokenStream stream_105=new RewriteRuleTokenStream(adaptor,"token 105");
RewriteRuleTokenStream stream_STRING=new RewriteRuleTokenStream(adaptor,"token STRING");
RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
RewriteRuleTokenStream stream_96=new RewriteRuleTokenStream(adaptor,"token 96");
RewriteRuleTokenStream stream_97=new RewriteRuleTokenStream(adaptor,"token 97");
RewriteRuleSubtreeStream stream_reg=new RewriteRuleSubtreeStream(adaptor,"rule reg");
RewriteRuleSubtreeStream stream_num=new RewriteRuleSubtreeStream(adaptor,"rule num");
RewriteRuleSubtreeStream stream_const_expr=new RewriteRuleSubtreeStream(adaptor,"rule const_expr");
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:422:3: ( reserved_label ':' | ID ':' -> ID | current_pos_ref | reg ( ':' | '=' | 'db' ) -> reg | STRING ( ( ',' )? ) -> STRING | '-' num ( ( ',' )? ) -> ^( C_UNARY_MINUS num ) | num ( ( ',' )? ) -> num | '(' const_expr ')' ( ( ',' )? ) -> const_expr )
int alt35=8;
switch ( input.LA(1) ) {
case CARRY:
case CTRL:
case CTR_FLAG:
case FLAGS:
case FREEREGS:
case IN:
case IP:
case LOCAL_REG:
case NOP:
case OUT1:
case OUT2:
case OVERFLOW:
case SIGN:
case ZERO:
{
alt35=1;
}
break;
case ID:
{
alt35=2;
}
break;
case CURRENT_POS:
{
alt35=3;
}
break;
case PERCENT:
case REG_PREFIX:
{
alt35=4;
}
break;
case STRING:
{
alt35=5;
}
break;
case 100:
{
alt35=6;
}
break;
case BINARY_LITERAL:
case DECIMAL_LITERAL:
case HEX_LITERAL:
{
alt35=7;
}
break;
case 96:
{
alt35=8;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 35, 0, input);
throw nvae;
}
switch (alt35) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:422:5: reserved_label ':'
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_reserved_label_in_data_def1962);
reserved_label70=reserved_label();
state._fsp--;
adaptor.addChild(root_0, reserved_label70.getTree());
char_literal71=(Token)match(input,102,FOLLOW_102_in_data_def1964);
char_literal71_tree = (Object)adaptor.create(char_literal71);
adaptor.addChild(root_0, char_literal71_tree);
if (true)
throw new SyntaxError("Attempt to redefine reserved label: " + (reserved_label70!=null?input.toString(reserved_label70.start,reserved_label70.stop):null), this.input);
}
break;
case 2 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:426:5: ID ':'
{
ID72=(Token)match(input,ID,FOLLOW_ID_in_data_def1972);
stream_ID.add(ID72);
char_literal73=(Token)match(input,102,FOLLOW_102_in_data_def1974);
stream_102.add(char_literal73);
// AST REWRITE
// elements: ID
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 426:29: -> ID
{
adaptor.addChild(root_0, stream_ID.nextNode());
}
retval.tree = root_0;
}
break;
case 3 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:427:5: current_pos_ref
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_current_pos_ref_in_data_def2006);
current_pos_ref74=current_pos_ref();
state._fsp--;
adaptor.addChild(root_0, current_pos_ref74.getTree());
}
break;
case 4 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:428:5: reg ( ':' | '=' | 'db' )
{
pushFollow(FOLLOW_reg_in_data_def2031);
reg75=reg();
state._fsp--;
stream_reg.add(reg75.getTree());
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:428:10: ( ':' | '=' | 'db' )
int alt30=3;
switch ( input.LA(1) ) {
case 102:
{
alt30=1;
}
break;
case 105:
{
alt30=2;
}
break;
case 110:
{
alt30=3;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 30, 0, input);
throw nvae;
}
switch (alt30) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:428:11: ':'
{
char_literal76=(Token)match(input,102,FOLLOW_102_in_data_def2035);
stream_102.add(char_literal76);
}
break;
case 2 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:428:17: '='
{
char_literal77=(Token)match(input,105,FOLLOW_105_in_data_def2039);
stream_105.add(char_literal77);
}
break;
case 3 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:428:23: 'db'
{
string_literal78=(Token)match(input,110,FOLLOW_110_in_data_def2043);
stream_110.add(string_literal78);
}
break;
}
// AST REWRITE
// elements: reg
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 428:29: -> reg
{
adaptor.addChild(root_0, stream_reg.nextTree());
}
retval.tree = root_0;
}
break;
case 5 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:429:5: STRING ( ( ',' )? )
{
STRING79=(Token)match(input,STRING,FOLLOW_STRING_in_data_def2058);
stream_STRING.add(STRING79);
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:429:12: ( ( ',' )? )
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:429:13: ( ',' )?
{
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:429:13: ( ',' )?
int alt31=2;
int LA31_0 = input.LA(1);
if ( (LA31_0==99) ) {
alt31=1;
}
switch (alt31) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:429:13: ','
{
char_literal80=(Token)match(input,99,FOLLOW_99_in_data_def2061);
stream_99.add(char_literal80);
}
break;
}
}
// AST REWRITE
// elements: STRING
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 429:29: -> STRING
{
adaptor.addChild(root_0, stream_STRING.nextNode());
}
retval.tree = root_0;
}
break;
case 6 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:430:5: '-' num ( ( ',' )? )
{
char_literal81=(Token)match(input,100,FOLLOW_100_in_data_def2084);
stream_100.add(char_literal81);
pushFollow(FOLLOW_num_in_data_def2086);
num82=num();
state._fsp--;
stream_num.add(num82.getTree());
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:430:13: ( ( ',' )? )
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:430:14: ( ',' )?
{
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:430:14: ( ',' )?
int alt32=2;
int LA32_0 = input.LA(1);
if ( (LA32_0==99) ) {
alt32=1;
}
switch (alt32) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:430:14: ','
{
char_literal83=(Token)match(input,99,FOLLOW_99_in_data_def2089);
stream_99.add(char_literal83);
}
break;
}
}
// AST REWRITE
// elements: num
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 430:29: -> ^( C_UNARY_MINUS num )
{
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:430:32: ^( C_UNARY_MINUS num )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(C_UNARY_MINUS, "C_UNARY_MINUS"), root_1);
adaptor.addChild(root_1, stream_num.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
break;
case 7 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:431:5: num ( ( ',' )? )
{
pushFollow(FOLLOW_num_in_data_def2115);
num84=num();
state._fsp--;
stream_num.add(num84.getTree());
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:431:9: ( ( ',' )? )
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:431:10: ( ',' )?
{
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:431:10: ( ',' )?
int alt33=2;
int LA33_0 = input.LA(1);
if ( (LA33_0==99) ) {
alt33=1;
}
switch (alt33) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:431:10: ','
{
char_literal85=(Token)match(input,99,FOLLOW_99_in_data_def2118);
stream_99.add(char_literal85);
}
break;
}
}
// AST REWRITE
// elements: num
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 431:29: -> num
{
adaptor.addChild(root_0, stream_num.nextTree());
}
retval.tree = root_0;
}
break;
case 8 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:432:5: '(' const_expr ')' ( ( ',' )? )
{
char_literal86=(Token)match(input,96,FOLLOW_96_in_data_def2145);
stream_96.add(char_literal86);
pushFollow(FOLLOW_const_expr_in_data_def2147);
const_expr87=const_expr();
state._fsp--;
stream_const_expr.add(const_expr87.getTree());
char_literal88=(Token)match(input,97,FOLLOW_97_in_data_def2149);
stream_97.add(char_literal88);
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:432:24: ( ( ',' )? )
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:432:25: ( ',' )?
{
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:432:25: ( ',' )?
int alt34=2;
int LA34_0 = input.LA(1);
if ( (LA34_0==99) ) {
alt34=1;
}
switch (alt34) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:432:25: ','
{
char_literal89=(Token)match(input,99,FOLLOW_99_in_data_def2152);
stream_99.add(char_literal89);
}
break;
}
}
// AST REWRITE
// elements: const_expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 432:32: -> const_expr
{
adaptor.addChild(root_0, stream_const_expr.nextTree());
}
retval.tree = root_0;
}
break;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "data_def"
public static class ram_section_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "ram_section"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:435:1: ram_section : SEC_RAM ( ram_def )* -> ^( RAM ( ram_def )* ) ;
public final InchwormAsmParser.ram_section_return ram_section() throws RecognitionException {
InchwormAsmParser.ram_section_return retval = new InchwormAsmParser.ram_section_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SEC_RAM90=null;
ParserRuleReturnScope ram_def91 =null;
Object SEC_RAM90_tree=null;
RewriteRuleTokenStream stream_SEC_RAM=new RewriteRuleTokenStream(adaptor,"token SEC_RAM");
RewriteRuleSubtreeStream stream_ram_def=new RewriteRuleSubtreeStream(adaptor,"rule ram_def");
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:436:3: ( SEC_RAM ( ram_def )* -> ^( RAM ( ram_def )* ) )
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:436:5: SEC_RAM ( ram_def )*
{
SEC_RAM90=(Token)match(input,SEC_RAM,FOLLOW_SEC_RAM_in_ram_section2176);
stream_SEC_RAM.add(SEC_RAM90);
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:436:13: ( ram_def )*
loop36:
while (true) {
int alt36=2;
int LA36_0 = input.LA(1);
if ( (LA36_0==BINARY_LITERAL||LA36_0==CARRY||(LA36_0 >= CTRL && LA36_0 <= CTR_FLAG)||LA36_0==DECIMAL_LITERAL||LA36_0==FLAGS||LA36_0==FREEREGS||(LA36_0 >= HEX_LITERAL && LA36_0 <= IN)||LA36_0==IP||LA36_0==LOCAL_REG||LA36_0==NOP||(LA36_0 >= OUT1 && LA36_0 <= OVERFLOW)||LA36_0==SIGN||LA36_0==ZERO) ) {
alt36=1;
}
switch (alt36) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:436:13: ram_def
{
pushFollow(FOLLOW_ram_def_in_ram_section2178);
ram_def91=ram_def();
state._fsp--;
stream_ram_def.add(ram_def91.getTree());
}
break;
default :
break loop36;
}
}
// AST REWRITE
// elements: ram_def
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 436:22: -> ^( RAM ( ram_def )* )
{
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:436:25: ^( RAM ( ram_def )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(RAM, "RAM"), root_1);
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:436:31: ( ram_def )*
while ( stream_ram_def.hasNext() ) {
adaptor.addChild(root_1, stream_ram_def.nextTree());
}
stream_ram_def.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "ram_section"
public static class ram_def_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "ram_def"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:440:1: ram_def : ( reserved_label ':' | ID ':' -> ID | num ( ( ',' )? ) -> num );
public final InchwormAsmParser.ram_def_return ram_def() throws RecognitionException {
InchwormAsmParser.ram_def_return retval = new InchwormAsmParser.ram_def_return();
retval.start = input.LT(1);
Object root_0 = null;
Token char_literal93=null;
Token ID94=null;
Token char_literal95=null;
Token char_literal97=null;
ParserRuleReturnScope reserved_label92 =null;
ParserRuleReturnScope num96 =null;
Object char_literal93_tree=null;
Object ID94_tree=null;
Object char_literal95_tree=null;
Object char_literal97_tree=null;
RewriteRuleTokenStream stream_99=new RewriteRuleTokenStream(adaptor,"token 99");
RewriteRuleTokenStream stream_102=new RewriteRuleTokenStream(adaptor,"token 102");
RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
RewriteRuleSubtreeStream stream_num=new RewriteRuleSubtreeStream(adaptor,"rule num");
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:441:3: ( reserved_label ':' | ID ':' -> ID | num ( ( ',' )? ) -> num )
int alt38=3;
switch ( input.LA(1) ) {
case CARRY:
case CTRL:
case CTR_FLAG:
case FLAGS:
case FREEREGS:
case IN:
case IP:
case LOCAL_REG:
case NOP:
case OUT1:
case OUT2:
case OVERFLOW:
case SIGN:
case ZERO:
{
alt38=1;
}
break;
case ID:
{
alt38=2;
}
break;
case BINARY_LITERAL:
case DECIMAL_LITERAL:
case HEX_LITERAL:
{
alt38=3;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 38, 0, input);
throw nvae;
}
switch (alt38) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:441:5: reserved_label ':'
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_reserved_label_in_ram_def2207);
reserved_label92=reserved_label();
state._fsp--;
adaptor.addChild(root_0, reserved_label92.getTree());
char_literal93=(Token)match(input,102,FOLLOW_102_in_ram_def2209);
char_literal93_tree = (Object)adaptor.create(char_literal93);
adaptor.addChild(root_0, char_literal93_tree);
if (true)
throw new SyntaxError("Attempt to redefine reserved label: " + (reserved_label92!=null?input.toString(reserved_label92.start,reserved_label92.stop):null), this.input);
}
break;
case 2 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:445:5: ID ':'
{
ID94=(Token)match(input,ID,FOLLOW_ID_in_ram_def2217);
stream_ID.add(ID94);
char_literal95=(Token)match(input,102,FOLLOW_102_in_ram_def2219);
stream_102.add(char_literal95);
// AST REWRITE
// elements: ID
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 445:29: -> ID
{
adaptor.addChild(root_0, stream_ID.nextNode());
}
retval.tree = root_0;
}
break;
case 3 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:448:5: num ( ( ',' )? )
{
pushFollow(FOLLOW_num_in_ram_def2254);
num96=num();
state._fsp--;
stream_num.add(num96.getTree());
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:448:9: ( ( ',' )? )
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:448:10: ( ',' )?
{
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:448:10: ( ',' )?
int alt37=2;
int LA37_0 = input.LA(1);
if ( (LA37_0==99) ) {
alt37=1;
}
switch (alt37) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:448:10: ','
{
char_literal97=(Token)match(input,99,FOLLOW_99_in_ram_def2257);
stream_99.add(char_literal97);
}
break;
}
}
// AST REWRITE
// elements: num
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 448:29: -> num
{
adaptor.addChild(root_0, stream_num.nextTree());
}
retval.tree = root_0;
}
break;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "ram_def"
public static class code_section_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "code_section"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:452:1: code_section : SEC_CODE ( codeop )* -> ^( CODE ( codeop )* ) ;
public final InchwormAsmParser.code_section_return code_section() throws RecognitionException {
InchwormAsmParser.code_section_return retval = new InchwormAsmParser.code_section_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SEC_CODE98=null;
ParserRuleReturnScope codeop99 =null;
Object SEC_CODE98_tree=null;
RewriteRuleTokenStream stream_SEC_CODE=new RewriteRuleTokenStream(adaptor,"token SEC_CODE");
RewriteRuleSubtreeStream stream_codeop=new RewriteRuleSubtreeStream(adaptor,"rule codeop");
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:453:2: ( SEC_CODE ( codeop )* -> ^( CODE ( codeop )* ) )
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:453:4: SEC_CODE ( codeop )*
{
SEC_CODE98=(Token)match(input,SEC_CODE,FOLLOW_SEC_CODE_in_code_section2292);
stream_SEC_CODE.add(SEC_CODE98);
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:453:13: ( codeop )*
loop39:
while (true) {
int alt39=2;
int LA39_0 = input.LA(1);
if ( ((LA39_0 >= ADD && LA39_0 <= AND)||(LA39_0 >= CALL && LA39_0 <= CARRY)||(LA39_0 >= CTRL && LA39_0 <= CTR_FLAG)||LA39_0==DIV||LA39_0==FLAGS||(LA39_0 >= FREEREGS && LA39_0 <= HALT)||(LA39_0 >= ID && LA39_0 <= IN)||(LA39_0 >= IP && LA39_0 <= LOADREG)||(LA39_0 >= LOCAL_REG && LA39_0 <= NOP)||(LA39_0 >= OR && LA39_0 <= OVERFLOW)||(LA39_0 >= RETURN && LA39_0 <= ROL)||LA39_0==SIGN||(LA39_0 >= STORE && LA39_0 <= STOREREG)||LA39_0==SUB||(LA39_0 >= XOR && LA39_0 <= ZERO)) ) {
alt39=1;
}
switch (alt39) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:453:13: codeop
{
pushFollow(FOLLOW_codeop_in_code_section2294);
codeop99=codeop();
state._fsp--;
stream_codeop.add(codeop99.getTree());
}
break;
default :
break loop39;
}
}
// AST REWRITE
// elements: codeop
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 453:21: -> ^( CODE ( codeop )* )
{
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:453:24: ^( CODE ( codeop )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(CODE, "CODE"), root_1);
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:453:31: ( codeop )*
while ( stream_codeop.hasNext() ) {
adaptor.addChild(root_1, stream_codeop.nextTree());
}
stream_codeop.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "code_section"
public static class codeop_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "codeop"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:456:1: codeop : ( label_def | instruction );
public final InchwormAsmParser.codeop_return codeop() throws RecognitionException {
InchwormAsmParser.codeop_return retval = new InchwormAsmParser.codeop_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope label_def100 =null;
ParserRuleReturnScope instruction101 =null;
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:456:8: ( label_def | instruction )
int alt40=2;
switch ( input.LA(1) ) {
case CARRY:
case CTRL:
case CTR_FLAG:
case FLAGS:
case FREEREGS:
case ID:
case IP:
case LOCAL_REG:
case NOP:
case OUT1:
case OUT2:
case OVERFLOW:
case SIGN:
{
alt40=1;
}
break;
case IN:
{
int LA40_2 = input.LA(2);
if ( (LA40_2==102) ) {
alt40=1;
}
else if ( (LA40_2==EOF||(LA40_2 >= ADD && LA40_2 <= AND)||LA40_2==CALL||(LA40_2 >= DIV && LA40_2 <= EOI)||LA40_2==HALT||LA40_2==IN||(LA40_2 >= LOAD && LA40_2 <= LOADREG)||(LA40_2 >= MUL && LA40_2 <= NEXT)||(LA40_2 >= OR && LA40_2 <= OUT)||(LA40_2 >= RETURN && LA40_2 <= ROL)||(LA40_2 >= STORE && LA40_2 <= STOREREG)||LA40_2==SUB||(LA40_2 >= XOR && LA40_2 <= ZERO)) ) {
alt40=2;
}
else {
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 40, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case ZERO:
{
int LA40_3 = input.LA(2);
if ( (LA40_3==102) ) {
alt40=1;
}
else if ( (LA40_3==NOP||LA40_3==PERCENT||LA40_3==REG_PREFIX) ) {
alt40=2;
}
else {
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 40, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case ADD:
case AND:
case CALL:
case DIV:
case HALT:
case LOAD:
case LOADREG:
case MUL:
case MUX:
case NEXT:
case OR:
case OUT:
case RETURN:
case ROL:
case STORE:
case STOREREG:
case SUB:
case XOR:
case XORI:
{
alt40=2;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 40, 0, input);
throw nvae;
}
switch (alt40) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:456:10: label_def
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_label_def_in_codeop2314);
label_def100=label_def();
state._fsp--;
adaptor.addChild(root_0, label_def100.getTree());
}
break;
case 2 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:456:22: instruction
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_instruction_in_codeop2318);
instruction101=instruction();
state._fsp--;
adaptor.addChild(root_0, instruction101.getTree());
}
break;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "codeop"
public static class immediate_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "immediate"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:459:1: immediate : const_expr ;
public final InchwormAsmParser.immediate_return immediate() throws RecognitionException {
InchwormAsmParser.immediate_return retval = new InchwormAsmParser.immediate_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope const_expr102 =null;
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:460:2: ( const_expr )
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:460:4: const_expr
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_const_expr_in_immediate2329);
const_expr102=const_expr();
state._fsp--;
adaptor.addChild(root_0, const_expr102.getTree());
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "immediate"
public static class const_expr_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "const_expr"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:463:1: const_expr : const_prec5 ;
public final InchwormAsmParser.const_expr_return const_expr() throws RecognitionException {
InchwormAsmParser.const_expr_return retval = new InchwormAsmParser.const_expr_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope const_prec5103 =null;
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:464:2: ( const_prec5 )
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:464:4: const_prec5
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_const_prec5_in_const_expr2340);
const_prec5103=const_prec5();
state._fsp--;
adaptor.addChild(root_0, const_prec5103.getTree());
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "const_expr"
public static class const_prec5_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "const_prec5"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:467:1: const_prec5 : l= const_prec4 ( const_prec5_op ^r= const_prec4 )* ;
public final InchwormAsmParser.const_prec5_return const_prec5() throws RecognitionException {
InchwormAsmParser.const_prec5_return retval = new InchwormAsmParser.const_prec5_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope l =null;
ParserRuleReturnScope r =null;
ParserRuleReturnScope const_prec5_op104 =null;
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:468:3: (l= const_prec4 ( const_prec5_op ^r= const_prec4 )* )
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:468:5: l= const_prec4 ( const_prec5_op ^r= const_prec4 )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_const_prec4_in_const_prec52354);
l=const_prec4();
state._fsp--;
adaptor.addChild(root_0, l.getTree());
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:468:19: ( const_prec5_op ^r= const_prec4 )*
loop41:
while (true) {
int alt41=2;
int LA41_0 = input.LA(1);
if ( (LA41_0==111) ) {
alt41=1;
}
switch (alt41) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:468:20: const_prec5_op ^r= const_prec4
{
pushFollow(FOLLOW_const_prec5_op_in_const_prec52357);
const_prec5_op104=const_prec5_op();
state._fsp--;
root_0 = (Object)adaptor.becomeRoot(const_prec5_op104.getTree(), root_0);
pushFollow(FOLLOW_const_prec4_in_const_prec52362);
r=const_prec4();
state._fsp--;
adaptor.addChild(root_0, r.getTree());
}
break;
default :
break loop41;
}
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "const_prec5"
public static class const_prec4_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "const_prec4"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:472:1: const_prec4 : l= const_prec3 ( const_prec4_op ^r= const_prec3 )* ;
public final InchwormAsmParser.const_prec4_return const_prec4() throws RecognitionException {
InchwormAsmParser.const_prec4_return retval = new InchwormAsmParser.const_prec4_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope l =null;
ParserRuleReturnScope r =null;
ParserRuleReturnScope const_prec4_op105 =null;
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:473:3: (l= const_prec3 ( const_prec4_op ^r= const_prec3 )* )
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:473:5: l= const_prec3 ( const_prec4_op ^r= const_prec3 )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_const_prec3_in_const_prec42382);
l=const_prec3();
state._fsp--;
adaptor.addChild(root_0, l.getTree());
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:473:19: ( const_prec4_op ^r= const_prec3 )*
loop42:
while (true) {
int alt42=2;
int LA42_0 = input.LA(1);
if ( (LA42_0==95||LA42_0==109) ) {
alt42=1;
}
switch (alt42) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:473:20: const_prec4_op ^r= const_prec3
{
pushFollow(FOLLOW_const_prec4_op_in_const_prec42385);
const_prec4_op105=const_prec4_op();
state._fsp--;
root_0 = (Object)adaptor.becomeRoot(const_prec4_op105.getTree(), root_0);
pushFollow(FOLLOW_const_prec3_in_const_prec42390);
r=const_prec3();
state._fsp--;
adaptor.addChild(root_0, r.getTree());
}
break;
default :
break loop42;
}
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "const_prec4"
public static class const_prec3_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "const_prec3"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:477:1: const_prec3 : l= const_prec2 ( const_prec3_op ^r= const_prec2 )* ;
public final InchwormAsmParser.const_prec3_return const_prec3() throws RecognitionException {
InchwormAsmParser.const_prec3_return retval = new InchwormAsmParser.const_prec3_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope l =null;
ParserRuleReturnScope r =null;
ParserRuleReturnScope const_prec3_op106 =null;
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:478:3: (l= const_prec2 ( const_prec3_op ^r= const_prec2 )* )
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:478:5: l= const_prec2 ( const_prec3_op ^r= const_prec2 )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_const_prec2_in_const_prec32409);
l=const_prec2();
state._fsp--;
adaptor.addChild(root_0, l.getTree());
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:478:19: ( const_prec3_op ^r= const_prec2 )*
loop43:
while (true) {
int alt43=2;
int LA43_0 = input.LA(1);
if ( (LA43_0==104||LA43_0==106) ) {
alt43=1;
}
switch (alt43) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:478:20: const_prec3_op ^r= const_prec2
{
pushFollow(FOLLOW_const_prec3_op_in_const_prec32412);
const_prec3_op106=const_prec3_op();
state._fsp--;
root_0 = (Object)adaptor.becomeRoot(const_prec3_op106.getTree(), root_0);
pushFollow(FOLLOW_const_prec2_in_const_prec32417);
r=const_prec2();
state._fsp--;
adaptor.addChild(root_0, r.getTree());
}
break;
default :
break loop43;
}
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "const_prec3"
public static class const_prec2_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "const_prec2"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:482:1: const_prec2 : l= const_prec1 ( const_prec2_op ^r= const_prec1 )* ;
public final InchwormAsmParser.const_prec2_return const_prec2() throws RecognitionException {
InchwormAsmParser.const_prec2_return retval = new InchwormAsmParser.const_prec2_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope l =null;
ParserRuleReturnScope r =null;
ParserRuleReturnScope const_prec2_op107 =null;
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:483:3: (l= const_prec1 ( const_prec2_op ^r= const_prec1 )* )
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:483:5: l= const_prec1 ( const_prec2_op ^r= const_prec1 )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_const_prec1_in_const_prec22436);
l=const_prec1();
state._fsp--;
adaptor.addChild(root_0, l.getTree());
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:483:19: ( const_prec2_op ^r= const_prec1 )*
loop44:
while (true) {
int alt44=2;
int LA44_0 = input.LA(1);
if ( (LA44_0==98||LA44_0==100) ) {
alt44=1;
}
switch (alt44) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:483:20: const_prec2_op ^r= const_prec1
{
pushFollow(FOLLOW_const_prec2_op_in_const_prec22439);
const_prec2_op107=const_prec2_op();
state._fsp--;
root_0 = (Object)adaptor.becomeRoot(const_prec2_op107.getTree(), root_0);
pushFollow(FOLLOW_const_prec1_in_const_prec22444);
r=const_prec1();
state._fsp--;
adaptor.addChild(root_0, r.getTree());
}
break;
default :
break loop44;
}
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "const_prec2"
public static class const_prec1_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "const_prec1"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:487:1: const_prec1 : l= const_prec0 ( const_prec1_op ^r= const_prec0 )* ;
public final InchwormAsmParser.const_prec1_return const_prec1() throws RecognitionException {
InchwormAsmParser.const_prec1_return retval = new InchwormAsmParser.const_prec1_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope l =null;
ParserRuleReturnScope r =null;
ParserRuleReturnScope const_prec1_op108 =null;
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:488:3: (l= const_prec0 ( const_prec1_op ^r= const_prec0 )* )
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:488:5: l= const_prec0 ( const_prec1_op ^r= const_prec0 )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_const_prec0_in_const_prec12463);
l=const_prec0();
state._fsp--;
adaptor.addChild(root_0, l.getTree());
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:488:19: ( const_prec1_op ^r= const_prec0 )*
loop45:
while (true) {
int alt45=2;
int LA45_0 = input.LA(1);
if ( (LA45_0==PERCENT||LA45_0==STAR||LA45_0==101) ) {
alt45=1;
}
switch (alt45) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:488:20: const_prec1_op ^r= const_prec0
{
pushFollow(FOLLOW_const_prec1_op_in_const_prec12466);
const_prec1_op108=const_prec1_op();
state._fsp--;
root_0 = (Object)adaptor.becomeRoot(const_prec1_op108.getTree(), root_0);
pushFollow(FOLLOW_const_prec0_in_const_prec12471);
r=const_prec0();
state._fsp--;
adaptor.addChild(root_0, r.getTree());
}
break;
default :
break loop45;
}
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "const_prec1"
public static class const_prec0_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "const_prec0"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:492:1: const_prec0 : ( const_unary_op ^ const_atom | const_atom );
public final InchwormAsmParser.const_prec0_return const_prec0() throws RecognitionException {
InchwormAsmParser.const_prec0_return retval = new InchwormAsmParser.const_prec0_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope const_unary_op109 =null;
ParserRuleReturnScope const_atom110 =null;
ParserRuleReturnScope const_atom111 =null;
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:493:3: ( const_unary_op ^ const_atom | const_atom )
int alt46=2;
int LA46_0 = input.LA(1);
if ( (LA46_0==100||LA46_0==112) ) {
alt46=1;
}
else if ( (LA46_0==BINARY_LITERAL||LA46_0==CARRY||(LA46_0 >= CTRL && LA46_0 <= CTR_FLAG)||LA46_0==CURRENT_POS||LA46_0==DECIMAL_LITERAL||LA46_0==FLAGS||LA46_0==FREEREGS||(LA46_0 >= HEX_LITERAL && LA46_0 <= IN)||LA46_0==IP||LA46_0==LOCAL_REG||LA46_0==NOP||(LA46_0 >= OUT1 && LA46_0 <= OVERFLOW)||LA46_0==SIGN||LA46_0==ZERO||LA46_0==96) ) {
alt46=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("", 46, 0, input);
throw nvae;
}
switch (alt46) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:493:5: const_unary_op ^ const_atom
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_const_unary_op_in_const_prec02488);
const_unary_op109=const_unary_op();
state._fsp--;
root_0 = (Object)adaptor.becomeRoot(const_unary_op109.getTree(), root_0);
pushFollow(FOLLOW_const_atom_in_const_prec02491);
const_atom110=const_atom();
state._fsp--;
adaptor.addChild(root_0, const_atom110.getTree());
}
break;
case 2 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:494:5: const_atom
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_const_atom_in_const_prec02499);
const_atom111=const_atom();
state._fsp--;
adaptor.addChild(root_0, const_atom111.getTree());
}
break;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "const_prec0"
public static class const_atom_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "const_atom"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:497:1: const_atom : ( num | symbol_ref | '(' const_expr ')' -> const_expr );
public final InchwormAsmParser.const_atom_return const_atom() throws RecognitionException {
InchwormAsmParser.const_atom_return retval = new InchwormAsmParser.const_atom_return();
retval.start = input.LT(1);
Object root_0 = null;
Token char_literal114=null;
Token char_literal116=null;
ParserRuleReturnScope num112 =null;
ParserRuleReturnScope symbol_ref113 =null;
ParserRuleReturnScope const_expr115 =null;
Object char_literal114_tree=null;
Object char_literal116_tree=null;
RewriteRuleTokenStream stream_96=new RewriteRuleTokenStream(adaptor,"token 96");
RewriteRuleTokenStream stream_97=new RewriteRuleTokenStream(adaptor,"token 97");
RewriteRuleSubtreeStream stream_const_expr=new RewriteRuleSubtreeStream(adaptor,"rule const_expr");
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:498:3: ( num | symbol_ref | '(' const_expr ')' -> const_expr )
int alt47=3;
switch ( input.LA(1) ) {
case BINARY_LITERAL:
case DECIMAL_LITERAL:
case HEX_LITERAL:
{
alt47=1;
}
break;
case CARRY:
case CTRL:
case CTR_FLAG:
case CURRENT_POS:
case FLAGS:
case FREEREGS:
case ID:
case IN:
case IP:
case LOCAL_REG:
case NOP:
case OUT1:
case OUT2:
case OVERFLOW:
case SIGN:
case ZERO:
{
alt47=2;
}
break;
case 96:
{
alt47=3;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 47, 0, input);
throw nvae;
}
switch (alt47) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:498:5: num
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_num_in_const_atom2513);
num112=num();
state._fsp--;
adaptor.addChild(root_0, num112.getTree());
}
break;
case 2 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:498:11: symbol_ref
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_symbol_ref_in_const_atom2517);
symbol_ref113=symbol_ref();
state._fsp--;
adaptor.addChild(root_0, symbol_ref113.getTree());
}
break;
case 3 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:498:24: '(' const_expr ')'
{
char_literal114=(Token)match(input,96,FOLLOW_96_in_const_atom2521);
stream_96.add(char_literal114);
pushFollow(FOLLOW_const_expr_in_const_atom2523);
const_expr115=const_expr();
state._fsp--;
stream_const_expr.add(const_expr115.getTree());
char_literal116=(Token)match(input,97,FOLLOW_97_in_const_atom2525);
stream_97.add(char_literal116);
// AST REWRITE
// elements: const_expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 498:43: -> const_expr
{
adaptor.addChild(root_0, stream_const_expr.nextTree());
}
retval.tree = root_0;
}
break;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "const_atom"
public static class const_unary_op_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "const_unary_op"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:501:1: const_unary_op : ( c_not -> C_NOT | c_sub -> C_UNARY_MINUS );
public final InchwormAsmParser.const_unary_op_return const_unary_op() throws RecognitionException {
InchwormAsmParser.const_unary_op_return retval = new InchwormAsmParser.const_unary_op_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope c_not117 =null;
ParserRuleReturnScope c_sub118 =null;
RewriteRuleSubtreeStream stream_c_sub=new RewriteRuleSubtreeStream(adaptor,"rule c_sub");
RewriteRuleSubtreeStream stream_c_not=new RewriteRuleSubtreeStream(adaptor,"rule c_not");
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:502:3: ( c_not -> C_NOT | c_sub -> C_UNARY_MINUS )
int alt48=2;
int LA48_0 = input.LA(1);
if ( (LA48_0==112) ) {
alt48=1;
}
else if ( (LA48_0==100) ) {
alt48=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("", 48, 0, input);
throw nvae;
}
switch (alt48) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:502:5: c_not
{
pushFollow(FOLLOW_c_not_in_const_unary_op2545);
c_not117=c_not();
state._fsp--;
stream_c_not.add(c_not117.getTree());
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 502:12: -> C_NOT
{
adaptor.addChild(root_0, (Object)adaptor.create(C_NOT, "C_NOT"));
}
retval.tree = root_0;
}
break;
case 2 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:503:5: c_sub
{
pushFollow(FOLLOW_c_sub_in_const_unary_op2556);
c_sub118=c_sub();
state._fsp--;
stream_c_sub.add(c_sub118.getTree());
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 503:12: -> C_UNARY_MINUS
{
adaptor.addChild(root_0, (Object)adaptor.create(C_UNARY_MINUS, "C_UNARY_MINUS"));
}
retval.tree = root_0;
}
break;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "const_unary_op"
public static class const_prec1_op_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "const_prec1_op"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:506:1: const_prec1_op : ( c_mul -> C_MUL | c_div -> C_DIV | c_mod -> C_MOD );
public final InchwormAsmParser.const_prec1_op_return const_prec1_op() throws RecognitionException {
InchwormAsmParser.const_prec1_op_return retval = new InchwormAsmParser.const_prec1_op_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope c_mul119 =null;
ParserRuleReturnScope c_div120 =null;
ParserRuleReturnScope c_mod121 =null;
RewriteRuleSubtreeStream stream_c_mul=new RewriteRuleSubtreeStream(adaptor,"rule c_mul");
RewriteRuleSubtreeStream stream_c_mod=new RewriteRuleSubtreeStream(adaptor,"rule c_mod");
RewriteRuleSubtreeStream stream_c_div=new RewriteRuleSubtreeStream(adaptor,"rule c_div");
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:507:3: ( c_mul -> C_MUL | c_div -> C_DIV | c_mod -> C_MOD )
int alt49=3;
switch ( input.LA(1) ) {
case STAR:
{
alt49=1;
}
break;
case 101:
{
alt49=2;
}
break;
case PERCENT:
{
alt49=3;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 49, 0, input);
throw nvae;
}
switch (alt49) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:507:5: c_mul
{
pushFollow(FOLLOW_c_mul_in_const_prec1_op2575);
c_mul119=c_mul();
state._fsp--;
stream_c_mul.add(c_mul119.getTree());
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 507:12: -> C_MUL
{
adaptor.addChild(root_0, (Object)adaptor.create(C_MUL, "C_MUL"));
}
retval.tree = root_0;
}
break;
case 2 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:508:5: c_div
{
pushFollow(FOLLOW_c_div_in_const_prec1_op2586);
c_div120=c_div();
state._fsp--;
stream_c_div.add(c_div120.getTree());
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 508:12: -> C_DIV
{
adaptor.addChild(root_0, (Object)adaptor.create(C_DIV, "C_DIV"));
}
retval.tree = root_0;
}
break;
case 3 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:509:5: c_mod
{
pushFollow(FOLLOW_c_mod_in_const_prec1_op2597);
c_mod121=c_mod();
state._fsp--;
stream_c_mod.add(c_mod121.getTree());
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 509:12: -> C_MOD
{
adaptor.addChild(root_0, (Object)adaptor.create(C_MOD, "C_MOD"));
}
retval.tree = root_0;
}
break;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "const_prec1_op"
public static class const_prec2_op_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "const_prec2_op"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:512:1: const_prec2_op : ( c_add -> C_ADD | c_sub -> C_SUB );
public final InchwormAsmParser.const_prec2_op_return const_prec2_op() throws RecognitionException {
InchwormAsmParser.const_prec2_op_return retval = new InchwormAsmParser.const_prec2_op_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope c_add122 =null;
ParserRuleReturnScope c_sub123 =null;
RewriteRuleSubtreeStream stream_c_sub=new RewriteRuleSubtreeStream(adaptor,"rule c_sub");
RewriteRuleSubtreeStream stream_c_add=new RewriteRuleSubtreeStream(adaptor,"rule c_add");
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:513:3: ( c_add -> C_ADD | c_sub -> C_SUB )
int alt50=2;
int LA50_0 = input.LA(1);
if ( (LA50_0==98) ) {
alt50=1;
}
else if ( (LA50_0==100) ) {
alt50=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("", 50, 0, input);
throw nvae;
}
switch (alt50) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:513:5: c_add
{
pushFollow(FOLLOW_c_add_in_const_prec2_op2618);
c_add122=c_add();
state._fsp--;
stream_c_add.add(c_add122.getTree());
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 513:12: -> C_ADD
{
adaptor.addChild(root_0, (Object)adaptor.create(C_ADD, "C_ADD"));
}
retval.tree = root_0;
}
break;
case 2 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:514:5: c_sub
{
pushFollow(FOLLOW_c_sub_in_const_prec2_op2629);
c_sub123=c_sub();
state._fsp--;
stream_c_sub.add(c_sub123.getTree());
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 514:12: -> C_SUB
{
adaptor.addChild(root_0, (Object)adaptor.create(C_SUB, "C_SUB"));
}
retval.tree = root_0;
}
break;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "const_prec2_op"
public static class const_prec3_op_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "const_prec3_op"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:517:1: const_prec3_op : ( c_shl -> C_SHL | c_shr -> C_SHR );
public final InchwormAsmParser.const_prec3_op_return const_prec3_op() throws RecognitionException {
InchwormAsmParser.const_prec3_op_return retval = new InchwormAsmParser.const_prec3_op_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope c_shl124 =null;
ParserRuleReturnScope c_shr125 =null;
RewriteRuleSubtreeStream stream_c_shr=new RewriteRuleSubtreeStream(adaptor,"rule c_shr");
RewriteRuleSubtreeStream stream_c_shl=new RewriteRuleSubtreeStream(adaptor,"rule c_shl");
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:518:3: ( c_shl -> C_SHL | c_shr -> C_SHR )
int alt51=2;
int LA51_0 = input.LA(1);
if ( (LA51_0==104) ) {
alt51=1;
}
else if ( (LA51_0==106) ) {
alt51=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("", 51, 0, input);
throw nvae;
}
switch (alt51) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:518:5: c_shl
{
pushFollow(FOLLOW_c_shl_in_const_prec3_op2647);
c_shl124=c_shl();
state._fsp--;
stream_c_shl.add(c_shl124.getTree());
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 518:12: -> C_SHL
{
adaptor.addChild(root_0, (Object)adaptor.create(C_SHL, "C_SHL"));
}
retval.tree = root_0;
}
break;
case 2 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:519:5: c_shr
{
pushFollow(FOLLOW_c_shr_in_const_prec3_op2658);
c_shr125=c_shr();
state._fsp--;
stream_c_shr.add(c_shr125.getTree());
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 519:12: -> C_SHR
{
adaptor.addChild(root_0, (Object)adaptor.create(C_SHR, "C_SHR"));
}
retval.tree = root_0;
}
break;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "const_prec3_op"
public static class const_prec4_op_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "const_prec4_op"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:522:1: const_prec4_op : ( c_and -> C_AND | c_xor -> C_XOR );
public final InchwormAsmParser.const_prec4_op_return const_prec4_op() throws RecognitionException {
InchwormAsmParser.const_prec4_op_return retval = new InchwormAsmParser.const_prec4_op_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope c_and126 =null;
ParserRuleReturnScope c_xor127 =null;
RewriteRuleSubtreeStream stream_c_and=new RewriteRuleSubtreeStream(adaptor,"rule c_and");
RewriteRuleSubtreeStream stream_c_xor=new RewriteRuleSubtreeStream(adaptor,"rule c_xor");
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:523:3: ( c_and -> C_AND | c_xor -> C_XOR )
int alt52=2;
int LA52_0 = input.LA(1);
if ( (LA52_0==95) ) {
alt52=1;
}
else if ( (LA52_0==109) ) {
alt52=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("", 52, 0, input);
throw nvae;
}
switch (alt52) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:523:5: c_and
{
pushFollow(FOLLOW_c_and_in_const_prec4_op2676);
c_and126=c_and();
state._fsp--;
stream_c_and.add(c_and126.getTree());
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 523:12: -> C_AND
{
adaptor.addChild(root_0, (Object)adaptor.create(C_AND, "C_AND"));
}
retval.tree = root_0;
}
break;
case 2 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:524:5: c_xor
{
pushFollow(FOLLOW_c_xor_in_const_prec4_op2687);
c_xor127=c_xor();
state._fsp--;
stream_c_xor.add(c_xor127.getTree());
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 524:12: -> C_XOR
{
adaptor.addChild(root_0, (Object)adaptor.create(C_XOR, "C_XOR"));
}
retval.tree = root_0;
}
break;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "const_prec4_op"
public static class const_prec5_op_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "const_prec5_op"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:527:1: const_prec5_op : c_or -> C_OR ;
public final InchwormAsmParser.const_prec5_op_return const_prec5_op() throws RecognitionException {
InchwormAsmParser.const_prec5_op_return retval = new InchwormAsmParser.const_prec5_op_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope c_or128 =null;
RewriteRuleSubtreeStream stream_c_or=new RewriteRuleSubtreeStream(adaptor,"rule c_or");
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:528:3: ( c_or -> C_OR )
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:528:5: c_or
{
pushFollow(FOLLOW_c_or_in_const_prec5_op2708);
c_or128=c_or();
state._fsp--;
stream_c_or.add(c_or128.getTree());
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 528:11: -> C_OR
{
adaptor.addChild(root_0, (Object)adaptor.create(C_OR, "C_OR"));
}
retval.tree = root_0;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "const_prec5_op"
public static class reserved_label_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "reserved_label"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:532:1: reserved_label : reg_symbol ;
public final InchwormAsmParser.reserved_label_return reserved_label() throws RecognitionException {
InchwormAsmParser.reserved_label_return retval = new InchwormAsmParser.reserved_label_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope reg_symbol129 =null;
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:533:3: ( reg_symbol )
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:533:5: reg_symbol
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_reg_symbol_in_reserved_label2727);
reg_symbol129=reg_symbol();
state._fsp--;
adaptor.addChild(root_0, reg_symbol129.getTree());
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "reserved_label"
public static class label_def_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "label_def"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:536:1: label_def : ( reserved_label ':' | ID ! ':' !);
public final InchwormAsmParser.label_def_return label_def() throws RecognitionException {
InchwormAsmParser.label_def_return retval = new InchwormAsmParser.label_def_return();
retval.start = input.LT(1);
Object root_0 = null;
Token char_literal131=null;
Token ID132=null;
Token char_literal133=null;
ParserRuleReturnScope reserved_label130 =null;
Object char_literal131_tree=null;
Object ID132_tree=null;
Object char_literal133_tree=null;
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:537:3: ( reserved_label ':' | ID ! ':' !)
int alt53=2;
int LA53_0 = input.LA(1);
if ( (LA53_0==CARRY||(LA53_0 >= CTRL && LA53_0 <= CTR_FLAG)||LA53_0==FLAGS||LA53_0==FREEREGS||LA53_0==IN||LA53_0==IP||LA53_0==LOCAL_REG||LA53_0==NOP||(LA53_0 >= OUT1 && LA53_0 <= OVERFLOW)||LA53_0==SIGN||LA53_0==ZERO) ) {
alt53=1;
}
else if ( (LA53_0==ID) ) {
alt53=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("", 53, 0, input);
throw nvae;
}
switch (alt53) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:537:5: reserved_label ':'
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_reserved_label_in_label_def2740);
reserved_label130=reserved_label();
state._fsp--;
adaptor.addChild(root_0, reserved_label130.getTree());
char_literal131=(Token)match(input,102,FOLLOW_102_in_label_def2742);
char_literal131_tree = (Object)adaptor.create(char_literal131);
adaptor.addChild(root_0, char_literal131_tree);
if (true)
throw new SyntaxError("Attempt to redefine reserved label: " + (reserved_label130!=null?input.toString(reserved_label130.start,reserved_label130.stop):null), this.input);
}
break;
case 2 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:541:4: ID ! ':' !
{
root_0 = (Object)adaptor.nil();
ID132=(Token)match(input,ID,FOLLOW_ID_in_label_def2749);
char_literal133=(Token)match(input,102,FOLLOW_102_in_label_def2752);
symbols.put((ID132!=null?ID132.getText():null), BigInteger.valueOf(nextInstruction));
}
break;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "label_def"
public static class symbol_ref_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "symbol_ref"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:544:1: symbol_ref : ( ID -> ^( SYMBOL ID ) | current_pos_ref | reg_symbol );
public final InchwormAsmParser.symbol_ref_return symbol_ref() throws RecognitionException {
InchwormAsmParser.symbol_ref_return retval = new InchwormAsmParser.symbol_ref_return();
retval.start = input.LT(1);
Object root_0 = null;
Token ID134=null;
ParserRuleReturnScope current_pos_ref135 =null;
ParserRuleReturnScope reg_symbol136 =null;
Object ID134_tree=null;
RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:545:2: ( ID -> ^( SYMBOL ID ) | current_pos_ref | reg_symbol )
int alt54=3;
switch ( input.LA(1) ) {
case ID:
{
alt54=1;
}
break;
case CURRENT_POS:
{
alt54=2;
}
break;
case CARRY:
case CTRL:
case CTR_FLAG:
case FLAGS:
case FREEREGS:
case IN:
case IP:
case LOCAL_REG:
case NOP:
case OUT1:
case OUT2:
case OVERFLOW:
case SIGN:
case ZERO:
{
alt54=3;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 54, 0, input);
throw nvae;
}
switch (alt54) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:545:4: ID
{
ID134=(Token)match(input,ID,FOLLOW_ID_in_symbol_ref2766);
stream_ID.add(ID134);
// AST REWRITE
// elements: ID
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 545:7: -> ^( SYMBOL ID )
{
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:545:10: ^( SYMBOL ID )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(SYMBOL, "SYMBOL"), root_1);
adaptor.addChild(root_1, stream_ID.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
break;
case 2 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:546:4: current_pos_ref
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_current_pos_ref_in_symbol_ref2779);
current_pos_ref135=current_pos_ref();
state._fsp--;
adaptor.addChild(root_0, current_pos_ref135.getTree());
}
break;
case 3 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:547:4: reg_symbol
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_reg_symbol_in_symbol_ref2784);
reg_symbol136=reg_symbol();
state._fsp--;
adaptor.addChild(root_0, reg_symbol136.getTree());
}
break;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "symbol_ref"
public static class current_pos_ref_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "current_pos_ref"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:550:1: current_pos_ref : CURRENT_POS -> HERE ;
public final InchwormAsmParser.current_pos_ref_return current_pos_ref() throws RecognitionException {
InchwormAsmParser.current_pos_ref_return retval = new InchwormAsmParser.current_pos_ref_return();
retval.start = input.LT(1);
Object root_0 = null;
Token CURRENT_POS137=null;
Object CURRENT_POS137_tree=null;
RewriteRuleTokenStream stream_CURRENT_POS=new RewriteRuleTokenStream(adaptor,"token CURRENT_POS");
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:551:2: ( CURRENT_POS -> HERE )
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:551:4: CURRENT_POS
{
CURRENT_POS137=(Token)match(input,CURRENT_POS,FOLLOW_CURRENT_POS_in_current_pos_ref2797);
stream_CURRENT_POS.add(CURRENT_POS137);
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 551:21: -> HERE
{
adaptor.addChild(root_0, (Object)adaptor.create(HERE, "HERE"));
}
retval.tree = root_0;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "current_pos_ref"
public static class instruction_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "instruction"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:554:1: instruction : ( op )+ ( EOI | EOF ) -> ^( INSTRUCTION NUM[Integer.toHexString(nextInstruction - 1)] ( op )+ ) ;
public final InchwormAsmParser.instruction_return instruction() throws RecognitionException {
InchwormAsmParser.instruction_return retval = new InchwormAsmParser.instruction_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EOI139=null;
Token EOF140=null;
ParserRuleReturnScope op138 =null;
Object EOI139_tree=null;
Object EOF140_tree=null;
RewriteRuleTokenStream stream_EOF=new RewriteRuleTokenStream(adaptor,"token EOF");
RewriteRuleTokenStream stream_EOI=new RewriteRuleTokenStream(adaptor,"token EOI");
RewriteRuleSubtreeStream stream_op=new RewriteRuleSubtreeStream(adaptor,"rule op");
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:555:2: ( ( op )+ ( EOI | EOF ) -> ^( INSTRUCTION NUM[Integer.toHexString(nextInstruction - 1)] ( op )+ ) )
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:555:4: ( op )+ ( EOI | EOF )
{
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:555:4: ( op )+
int cnt55=0;
loop55:
while (true) {
int alt55=2;
int LA55_0 = input.LA(1);
if ( ((LA55_0 >= ADD && LA55_0 <= AND)||LA55_0==CALL||LA55_0==DIV||LA55_0==HALT||LA55_0==IN||(LA55_0 >= LOAD && LA55_0 <= LOADREG)||(LA55_0 >= MUL && LA55_0 <= NEXT)||(LA55_0 >= OR && LA55_0 <= OUT)||(LA55_0 >= RETURN && LA55_0 <= ROL)||(LA55_0 >= STORE && LA55_0 <= STOREREG)||LA55_0==SUB||(LA55_0 >= XOR && LA55_0 <= ZERO)) ) {
alt55=1;
}
switch (alt55) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:555:4: op
{
pushFollow(FOLLOW_op_in_instruction2818);
op138=op();
state._fsp--;
stream_op.add(op138.getTree());
}
break;
default :
if ( cnt55 >= 1 ) break loop55;
EarlyExitException eee = new EarlyExitException(55, input);
throw eee;
}
cnt55++;
}
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:555:8: ( EOI | EOF )
int alt56=2;
int LA56_0 = input.LA(1);
if ( (LA56_0==EOI) ) {
alt56=1;
}
else if ( (LA56_0==EOF) ) {
alt56=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("", 56, 0, input);
throw nvae;
}
switch (alt56) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:555:9: EOI
{
EOI139=(Token)match(input,EOI,FOLLOW_EOI_in_instruction2822);
stream_EOI.add(EOI139);
}
break;
case 2 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:555:13: EOF
{
EOF140=(Token)match(input,EOF,FOLLOW_EOF_in_instruction2824);
stream_EOF.add(EOF140);
}
break;
}
++nextInstruction;
// AST REWRITE
// elements: op
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 555:41: -> ^( INSTRUCTION NUM[Integer.toHexString(nextInstruction - 1)] ( op )+ )
{
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:555:44: ^( INSTRUCTION NUM[Integer.toHexString(nextInstruction - 1)] ( op )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(INSTRUCTION, "INSTRUCTION"), root_1);
adaptor.addChild(root_1, (Object)adaptor.create(NUM, Integer.toHexString(nextInstruction - 1)));
if ( !(stream_op.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_op.hasNext() ) {
adaptor.addChild(root_1, stream_op.nextTree());
}
stream_op.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "instruction"
public static class op_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "op"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:563:1: op : ( ZERO ^ arg1 | XORI ^ arg1i | XOR ^ arg3 | OR ^ arg3 | ADD ^ arg3 | SUB ^ arg3 | AND ^ arg3 | ROL ^ arg3 | MUL ^ arg3 | DIV ^ arg3 | LOAD ^ arg2 | STORE ^ arg2 | LOADREG ^ arg2 | STOREREG ^ arg2 | OUT | IN | HALT | MUX ^ arg4 | NEXT ^ arg2 | CALL ^ argi | RETURN );
public final InchwormAsmParser.op_return op() throws RecognitionException {
InchwormAsmParser.op_return retval = new InchwormAsmParser.op_return();
retval.start = input.LT(1);
Object root_0 = null;
Token ZERO141=null;
Token XORI143=null;
Token XOR145=null;
Token OR147=null;
Token ADD149=null;
Token SUB151=null;
Token AND153=null;
Token ROL155=null;
Token MUL157=null;
Token DIV159=null;
Token LOAD161=null;
Token STORE163=null;
Token LOADREG165=null;
Token STOREREG167=null;
Token OUT169=null;
Token IN170=null;
Token HALT171=null;
Token MUX172=null;
Token NEXT174=null;
Token CALL176=null;
Token RETURN178=null;
ParserRuleReturnScope arg1142 =null;
ParserRuleReturnScope arg1i144 =null;
ParserRuleReturnScope arg3146 =null;
ParserRuleReturnScope arg3148 =null;
ParserRuleReturnScope arg3150 =null;
ParserRuleReturnScope arg3152 =null;
ParserRuleReturnScope arg3154 =null;
ParserRuleReturnScope arg3156 =null;
ParserRuleReturnScope arg3158 =null;
ParserRuleReturnScope arg3160 =null;
ParserRuleReturnScope arg2162 =null;
ParserRuleReturnScope arg2164 =null;
ParserRuleReturnScope arg2166 =null;
ParserRuleReturnScope arg2168 =null;
ParserRuleReturnScope arg4173 =null;
ParserRuleReturnScope arg2175 =null;
ParserRuleReturnScope argi177 =null;
Object ZERO141_tree=null;
Object XORI143_tree=null;
Object XOR145_tree=null;
Object OR147_tree=null;
Object ADD149_tree=null;
Object SUB151_tree=null;
Object AND153_tree=null;
Object ROL155_tree=null;
Object MUL157_tree=null;
Object DIV159_tree=null;
Object LOAD161_tree=null;
Object STORE163_tree=null;
Object LOADREG165_tree=null;
Object STOREREG167_tree=null;
Object OUT169_tree=null;
Object IN170_tree=null;
Object HALT171_tree=null;
Object MUX172_tree=null;
Object NEXT174_tree=null;
Object CALL176_tree=null;
Object RETURN178_tree=null;
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:563:3: ( ZERO ^ arg1 | XORI ^ arg1i | XOR ^ arg3 | OR ^ arg3 | ADD ^ arg3 | SUB ^ arg3 | AND ^ arg3 | ROL ^ arg3 | MUL ^ arg3 | DIV ^ arg3 | LOAD ^ arg2 | STORE ^ arg2 | LOADREG ^ arg2 | STOREREG ^ arg2 | OUT | IN | HALT | MUX ^ arg4 | NEXT ^ arg2 | CALL ^ argi | RETURN )
int alt57=21;
switch ( input.LA(1) ) {
case ZERO:
{
alt57=1;
}
break;
case XORI:
{
alt57=2;
}
break;
case XOR:
{
alt57=3;
}
break;
case OR:
{
alt57=4;
}
break;
case ADD:
{
alt57=5;
}
break;
case SUB:
{
alt57=6;
}
break;
case AND:
{
alt57=7;
}
break;
case ROL:
{
alt57=8;
}
break;
case MUL:
{
alt57=9;
}
break;
case DIV:
{
alt57=10;
}
break;
case LOAD:
{
alt57=11;
}
break;
case STORE:
{
alt57=12;
}
break;
case LOADREG:
{
alt57=13;
}
break;
case STOREREG:
{
alt57=14;
}
break;
case OUT:
{
alt57=15;
}
break;
case IN:
{
alt57=16;
}
break;
case HALT:
{
alt57=17;
}
break;
case MUX:
{
alt57=18;
}
break;
case NEXT:
{
alt57=19;
}
break;
case CALL:
{
alt57=20;
}
break;
case RETURN:
{
alt57=21;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 57, 0, input);
throw nvae;
}
switch (alt57) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:563:5: ZERO ^ arg1
{
root_0 = (Object)adaptor.nil();
ZERO141=(Token)match(input,ZERO,FOLLOW_ZERO_in_op2857);
ZERO141_tree = (Object)adaptor.create(ZERO141);
root_0 = (Object)adaptor.becomeRoot(ZERO141_tree, root_0);
pushFollow(FOLLOW_arg1_in_op2860);
arg1142=arg1();
state._fsp--;
adaptor.addChild(root_0, arg1142.getTree());
}
break;
case 2 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:564:4: XORI ^ arg1i
{
root_0 = (Object)adaptor.nil();
XORI143=(Token)match(input,XORI,FOLLOW_XORI_in_op2866);
XORI143_tree = (Object)adaptor.create(XORI143);
root_0 = (Object)adaptor.becomeRoot(XORI143_tree, root_0);
pushFollow(FOLLOW_arg1i_in_op2869);
arg1i144=arg1i();
state._fsp--;
adaptor.addChild(root_0, arg1i144.getTree());
}
break;
case 3 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:565:4: XOR ^ arg3
{
root_0 = (Object)adaptor.nil();
XOR145=(Token)match(input,XOR,FOLLOW_XOR_in_op2874);
XOR145_tree = (Object)adaptor.create(XOR145);
root_0 = (Object)adaptor.becomeRoot(XOR145_tree, root_0);
pushFollow(FOLLOW_arg3_in_op2877);
arg3146=arg3();
state._fsp--;
adaptor.addChild(root_0, arg3146.getTree());
}
break;
case 4 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:566:4: OR ^ arg3
{
root_0 = (Object)adaptor.nil();
OR147=(Token)match(input,OR,FOLLOW_OR_in_op2882);
OR147_tree = (Object)adaptor.create(OR147);
root_0 = (Object)adaptor.becomeRoot(OR147_tree, root_0);
pushFollow(FOLLOW_arg3_in_op2885);
arg3148=arg3();
state._fsp--;
adaptor.addChild(root_0, arg3148.getTree());
}
break;
case 5 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:567:4: ADD ^ arg3
{
root_0 = (Object)adaptor.nil();
ADD149=(Token)match(input,ADD,FOLLOW_ADD_in_op2890);
ADD149_tree = (Object)adaptor.create(ADD149);
root_0 = (Object)adaptor.becomeRoot(ADD149_tree, root_0);
pushFollow(FOLLOW_arg3_in_op2893);
arg3150=arg3();
state._fsp--;
adaptor.addChild(root_0, arg3150.getTree());
}
break;
case 6 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:568:4: SUB ^ arg3
{
root_0 = (Object)adaptor.nil();
SUB151=(Token)match(input,SUB,FOLLOW_SUB_in_op2898);
SUB151_tree = (Object)adaptor.create(SUB151);
root_0 = (Object)adaptor.becomeRoot(SUB151_tree, root_0);
pushFollow(FOLLOW_arg3_in_op2901);
arg3152=arg3();
state._fsp--;
adaptor.addChild(root_0, arg3152.getTree());
}
break;
case 7 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:569:4: AND ^ arg3
{
root_0 = (Object)adaptor.nil();
AND153=(Token)match(input,AND,FOLLOW_AND_in_op2906);
AND153_tree = (Object)adaptor.create(AND153);
root_0 = (Object)adaptor.becomeRoot(AND153_tree, root_0);
pushFollow(FOLLOW_arg3_in_op2909);
arg3154=arg3();
state._fsp--;
adaptor.addChild(root_0, arg3154.getTree());
}
break;
case 8 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:570:4: ROL ^ arg3
{
root_0 = (Object)adaptor.nil();
ROL155=(Token)match(input,ROL,FOLLOW_ROL_in_op2914);
ROL155_tree = (Object)adaptor.create(ROL155);
root_0 = (Object)adaptor.becomeRoot(ROL155_tree, root_0);
pushFollow(FOLLOW_arg3_in_op2917);
arg3156=arg3();
state._fsp--;
adaptor.addChild(root_0, arg3156.getTree());
}
break;
case 9 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:571:4: MUL ^ arg3
{
root_0 = (Object)adaptor.nil();
MUL157=(Token)match(input,MUL,FOLLOW_MUL_in_op2922);
MUL157_tree = (Object)adaptor.create(MUL157);
root_0 = (Object)adaptor.becomeRoot(MUL157_tree, root_0);
pushFollow(FOLLOW_arg3_in_op2925);
arg3158=arg3();
state._fsp--;
adaptor.addChild(root_0, arg3158.getTree());
}
break;
case 10 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:571:16: DIV ^ arg3
{
root_0 = (Object)adaptor.nil();
DIV159=(Token)match(input,DIV,FOLLOW_DIV_in_op2929);
DIV159_tree = (Object)adaptor.create(DIV159);
root_0 = (Object)adaptor.becomeRoot(DIV159_tree, root_0);
pushFollow(FOLLOW_arg3_in_op2932);
arg3160=arg3();
state._fsp--;
adaptor.addChild(root_0, arg3160.getTree());
}
break;
case 11 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:571:28: LOAD ^ arg2
{
root_0 = (Object)adaptor.nil();
LOAD161=(Token)match(input,LOAD,FOLLOW_LOAD_in_op2936);
LOAD161_tree = (Object)adaptor.create(LOAD161);
root_0 = (Object)adaptor.becomeRoot(LOAD161_tree, root_0);
pushFollow(FOLLOW_arg2_in_op2939);
arg2162=arg2();
state._fsp--;
adaptor.addChild(root_0, arg2162.getTree());
}
break;
case 12 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:571:41: STORE ^ arg2
{
root_0 = (Object)adaptor.nil();
STORE163=(Token)match(input,STORE,FOLLOW_STORE_in_op2943);
STORE163_tree = (Object)adaptor.create(STORE163);
root_0 = (Object)adaptor.becomeRoot(STORE163_tree, root_0);
pushFollow(FOLLOW_arg2_in_op2946);
arg2164=arg2();
state._fsp--;
adaptor.addChild(root_0, arg2164.getTree());
}
break;
case 13 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:571:55: LOADREG ^ arg2
{
root_0 = (Object)adaptor.nil();
LOADREG165=(Token)match(input,LOADREG,FOLLOW_LOADREG_in_op2950);
LOADREG165_tree = (Object)adaptor.create(LOADREG165);
root_0 = (Object)adaptor.becomeRoot(LOADREG165_tree, root_0);
pushFollow(FOLLOW_arg2_in_op2953);
arg2166=arg2();
state._fsp--;
adaptor.addChild(root_0, arg2166.getTree());
}
break;
case 14 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:571:71: STOREREG ^ arg2
{
root_0 = (Object)adaptor.nil();
STOREREG167=(Token)match(input,STOREREG,FOLLOW_STOREREG_in_op2957);
STOREREG167_tree = (Object)adaptor.create(STOREREG167);
root_0 = (Object)adaptor.becomeRoot(STOREREG167_tree, root_0);
pushFollow(FOLLOW_arg2_in_op2960);
arg2168=arg2();
state._fsp--;
adaptor.addChild(root_0, arg2168.getTree());
}
break;
case 15 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:572:4: OUT
{
root_0 = (Object)adaptor.nil();
OUT169=(Token)match(input,OUT,FOLLOW_OUT_in_op2965);
OUT169_tree = (Object)adaptor.create(OUT169);
adaptor.addChild(root_0, OUT169_tree);
}
break;
case 16 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:572:10: IN
{
root_0 = (Object)adaptor.nil();
IN170=(Token)match(input,IN,FOLLOW_IN_in_op2969);
IN170_tree = (Object)adaptor.create(IN170);
adaptor.addChild(root_0, IN170_tree);
}
break;
case 17 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:572:15: HALT
{
root_0 = (Object)adaptor.nil();
HALT171=(Token)match(input,HALT,FOLLOW_HALT_in_op2973);
HALT171_tree = (Object)adaptor.create(HALT171);
adaptor.addChild(root_0, HALT171_tree);
}
break;
case 18 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:572:22: MUX ^ arg4
{
root_0 = (Object)adaptor.nil();
MUX172=(Token)match(input,MUX,FOLLOW_MUX_in_op2977);
MUX172_tree = (Object)adaptor.create(MUX172);
root_0 = (Object)adaptor.becomeRoot(MUX172_tree, root_0);
pushFollow(FOLLOW_arg4_in_op2980);
arg4173=arg4();
state._fsp--;
adaptor.addChild(root_0, arg4173.getTree());
}
break;
case 19 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:572:34: NEXT ^ arg2
{
root_0 = (Object)adaptor.nil();
NEXT174=(Token)match(input,NEXT,FOLLOW_NEXT_in_op2984);
NEXT174_tree = (Object)adaptor.create(NEXT174);
root_0 = (Object)adaptor.becomeRoot(NEXT174_tree, root_0);
pushFollow(FOLLOW_arg2_in_op2987);
arg2175=arg2();
state._fsp--;
adaptor.addChild(root_0, arg2175.getTree());
}
break;
case 20 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:572:47: CALL ^ argi
{
root_0 = (Object)adaptor.nil();
CALL176=(Token)match(input,CALL,FOLLOW_CALL_in_op2991);
CALL176_tree = (Object)adaptor.create(CALL176);
root_0 = (Object)adaptor.becomeRoot(CALL176_tree, root_0);
pushFollow(FOLLOW_argi_in_op2994);
argi177=argi();
state._fsp--;
adaptor.addChild(root_0, argi177.getTree());
}
break;
case 21 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:572:60: RETURN
{
root_0 = (Object)adaptor.nil();
RETURN178=(Token)match(input,RETURN,FOLLOW_RETURN_in_op2998);
RETURN178_tree = (Object)adaptor.create(RETURN178);
adaptor.addChild(root_0, RETURN178_tree);
}
break;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "op"
public static class argi_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "argi"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:578:1: argi : immediate ;
public final InchwormAsmParser.argi_return argi() throws RecognitionException {
InchwormAsmParser.argi_return retval = new InchwormAsmParser.argi_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope immediate179 =null;
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:578:6: ( immediate )
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:578:8: immediate
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_immediate_in_argi3011);
immediate179=immediate();
state._fsp--;
adaptor.addChild(root_0, immediate179.getTree());
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "argi"
public static class arg1_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "arg1"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:581:1: arg1 : ( reg | NOP -> ^( REG NOP ) );
public final InchwormAsmParser.arg1_return arg1() throws RecognitionException {
InchwormAsmParser.arg1_return retval = new InchwormAsmParser.arg1_return();
retval.start = input.LT(1);
Object root_0 = null;
Token NOP181=null;
ParserRuleReturnScope reg180 =null;
Object NOP181_tree=null;
RewriteRuleTokenStream stream_NOP=new RewriteRuleTokenStream(adaptor,"token NOP");
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:581:6: ( reg | NOP -> ^( REG NOP ) )
int alt58=2;
int LA58_0 = input.LA(1);
if ( (LA58_0==PERCENT||LA58_0==REG_PREFIX) ) {
alt58=1;
}
else if ( (LA58_0==NOP) ) {
alt58=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("", 58, 0, input);
throw nvae;
}
switch (alt58) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:581:8: reg
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_reg_in_arg13022);
reg180=reg();
state._fsp--;
adaptor.addChild(root_0, reg180.getTree());
}
break;
case 2 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:582:4: NOP
{
NOP181=(Token)match(input,NOP,FOLLOW_NOP_in_arg13027);
stream_NOP.add(NOP181);
// AST REWRITE
// elements: NOP
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 582:9: -> ^( REG NOP )
{
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:582:12: ^( REG NOP )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(REG, "REG"), root_1);
adaptor.addChild(root_1, stream_NOP.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
break;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "arg1"
public static class arg1i_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "arg1i"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:585:1: arg1i : ( reg ( ',' | '<' ) ! immediate | NOP -> ^( REG NOP ) ^( NUM[\"0\"] ) );
public final InchwormAsmParser.arg1i_return arg1i() throws RecognitionException {
InchwormAsmParser.arg1i_return retval = new InchwormAsmParser.arg1i_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set183=null;
Token NOP185=null;
ParserRuleReturnScope reg182 =null;
ParserRuleReturnScope immediate184 =null;
Object set183_tree=null;
Object NOP185_tree=null;
RewriteRuleTokenStream stream_NOP=new RewriteRuleTokenStream(adaptor,"token NOP");
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:585:7: ( reg ( ',' | '<' ) ! immediate | NOP -> ^( REG NOP ) ^( NUM[\"0\"] ) )
int alt59=2;
int LA59_0 = input.LA(1);
if ( (LA59_0==PERCENT||LA59_0==REG_PREFIX) ) {
alt59=1;
}
else if ( (LA59_0==NOP) ) {
alt59=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("", 59, 0, input);
throw nvae;
}
switch (alt59) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:585:9: reg ( ',' | '<' ) ! immediate
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_reg_in_arg1i3048);
reg182=reg();
state._fsp--;
adaptor.addChild(root_0, reg182.getTree());
set183=input.LT(1);
if ( input.LA(1)==99||input.LA(1)==103 ) {
input.consume();
state.errorRecovery=false;
}
else {
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
pushFollow(FOLLOW_immediate_in_arg1i3057);
immediate184=immediate();
state._fsp--;
adaptor.addChild(root_0, immediate184.getTree());
}
break;
case 2 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:586:4: NOP
{
NOP185=(Token)match(input,NOP,FOLLOW_NOP_in_arg1i3062);
stream_NOP.add(NOP185);
// AST REWRITE
// elements: NOP
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 586:9: -> ^( REG NOP ) ^( NUM[\"0\"] )
{
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:586:12: ^( REG NOP )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(REG, "REG"), root_1);
adaptor.addChild(root_1, stream_NOP.nextNode());
adaptor.addChild(root_0, root_1);
}
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:586:23: ^( NUM[\"0\"] )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(NUM, "0"), root_1);
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
break;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "arg1i"
public static class arg2_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "arg2"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:589:1: arg2 : ( reg ( ',' | '<' ) ! reg | NOP -> ^( REG NOP ) ^( REG NOP ) );
public final InchwormAsmParser.arg2_return arg2() throws RecognitionException {
InchwormAsmParser.arg2_return retval = new InchwormAsmParser.arg2_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set187=null;
Token NOP189=null;
ParserRuleReturnScope reg186 =null;
ParserRuleReturnScope reg188 =null;
Object set187_tree=null;
Object NOP189_tree=null;
RewriteRuleTokenStream stream_NOP=new RewriteRuleTokenStream(adaptor,"token NOP");
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:589:6: ( reg ( ',' | '<' ) ! reg | NOP -> ^( REG NOP ) ^( REG NOP ) )
int alt60=2;
int LA60_0 = input.LA(1);
if ( (LA60_0==PERCENT||LA60_0==REG_PREFIX) ) {
alt60=1;
}
else if ( (LA60_0==NOP) ) {
alt60=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("", 60, 0, input);
throw nvae;
}
switch (alt60) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:589:8: reg ( ',' | '<' ) ! reg
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_reg_in_arg23088);
reg186=reg();
state._fsp--;
adaptor.addChild(root_0, reg186.getTree());
set187=input.LT(1);
if ( input.LA(1)==99||input.LA(1)==103 ) {
input.consume();
state.errorRecovery=false;
}
else {
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
pushFollow(FOLLOW_reg_in_arg23097);
reg188=reg();
state._fsp--;
adaptor.addChild(root_0, reg188.getTree());
}
break;
case 2 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:590:4: NOP
{
NOP189=(Token)match(input,NOP,FOLLOW_NOP_in_arg23102);
stream_NOP.add(NOP189);
// AST REWRITE
// elements: NOP, NOP
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 590:9: -> ^( REG NOP ) ^( REG NOP )
{
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:590:12: ^( REG NOP )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(REG, "REG"), root_1);
adaptor.addChild(root_1, stream_NOP.nextNode());
adaptor.addChild(root_0, root_1);
}
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:590:23: ^( REG NOP )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(REG, "REG"), root_1);
adaptor.addChild(root_1, stream_NOP.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
break;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "arg2"
public static class arg3_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "arg3"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:593:1: arg3 : ( reg ( ',' | '<' ) ! reg ',' ! reg | NOP -> ^( REG NOP ) ^( REG NOP ) ^( REG NOP ) );
public final InchwormAsmParser.arg3_return arg3() throws RecognitionException {
InchwormAsmParser.arg3_return retval = new InchwormAsmParser.arg3_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set191=null;
Token char_literal193=null;
Token NOP195=null;
ParserRuleReturnScope reg190 =null;
ParserRuleReturnScope reg192 =null;
ParserRuleReturnScope reg194 =null;
Object set191_tree=null;
Object char_literal193_tree=null;
Object NOP195_tree=null;
RewriteRuleTokenStream stream_NOP=new RewriteRuleTokenStream(adaptor,"token NOP");
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:593:6: ( reg ( ',' | '<' ) ! reg ',' ! reg | NOP -> ^( REG NOP ) ^( REG NOP ) ^( REG NOP ) )
int alt61=2;
int LA61_0 = input.LA(1);
if ( (LA61_0==PERCENT||LA61_0==REG_PREFIX) ) {
alt61=1;
}
else if ( (LA61_0==NOP) ) {
alt61=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("", 61, 0, input);
throw nvae;
}
switch (alt61) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:593:8: reg ( ',' | '<' ) ! reg ',' ! reg
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_reg_in_arg33129);
reg190=reg();
state._fsp--;
adaptor.addChild(root_0, reg190.getTree());
set191=input.LT(1);
if ( input.LA(1)==99||input.LA(1)==103 ) {
input.consume();
state.errorRecovery=false;
}
else {
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
pushFollow(FOLLOW_reg_in_arg33138);
reg192=reg();
state._fsp--;
adaptor.addChild(root_0, reg192.getTree());
char_literal193=(Token)match(input,99,FOLLOW_99_in_arg33140);
pushFollow(FOLLOW_reg_in_arg33143);
reg194=reg();
state._fsp--;
adaptor.addChild(root_0, reg194.getTree());
}
break;
case 2 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:594:4: NOP
{
NOP195=(Token)match(input,NOP,FOLLOW_NOP_in_arg33148);
stream_NOP.add(NOP195);
// AST REWRITE
// elements: NOP, NOP, NOP
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 594:9: -> ^( REG NOP ) ^( REG NOP ) ^( REG NOP )
{
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:594:12: ^( REG NOP )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(REG, "REG"), root_1);
adaptor.addChild(root_1, stream_NOP.nextNode());
adaptor.addChild(root_0, root_1);
}
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:594:23: ^( REG NOP )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(REG, "REG"), root_1);
adaptor.addChild(root_1, stream_NOP.nextNode());
adaptor.addChild(root_0, root_1);
}
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:594:34: ^( REG NOP )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(REG, "REG"), root_1);
adaptor.addChild(root_1, stream_NOP.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
break;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "arg3"
public static class arg4_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "arg4"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:597:1: arg4 : ( reg ( ',' | '<' ) ! reg ',' ! reg ',' ! reg | NOP -> ^( REG NOP ) ^( REG NOP ) ^( REG NOP ) ^( REG NOP ) );
public final InchwormAsmParser.arg4_return arg4() throws RecognitionException {
InchwormAsmParser.arg4_return retval = new InchwormAsmParser.arg4_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set197=null;
Token char_literal199=null;
Token char_literal201=null;
Token NOP203=null;
ParserRuleReturnScope reg196 =null;
ParserRuleReturnScope reg198 =null;
ParserRuleReturnScope reg200 =null;
ParserRuleReturnScope reg202 =null;
Object set197_tree=null;
Object char_literal199_tree=null;
Object char_literal201_tree=null;
Object NOP203_tree=null;
RewriteRuleTokenStream stream_NOP=new RewriteRuleTokenStream(adaptor,"token NOP");
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:597:6: ( reg ( ',' | '<' ) ! reg ',' ! reg ',' ! reg | NOP -> ^( REG NOP ) ^( REG NOP ) ^( REG NOP ) ^( REG NOP ) )
int alt62=2;
int LA62_0 = input.LA(1);
if ( (LA62_0==PERCENT||LA62_0==REG_PREFIX) ) {
alt62=1;
}
else if ( (LA62_0==NOP) ) {
alt62=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("", 62, 0, input);
throw nvae;
}
switch (alt62) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:597:8: reg ( ',' | '<' ) ! reg ',' ! reg ',' ! reg
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_reg_in_arg43181);
reg196=reg();
state._fsp--;
adaptor.addChild(root_0, reg196.getTree());
set197=input.LT(1);
if ( input.LA(1)==99||input.LA(1)==103 ) {
input.consume();
state.errorRecovery=false;
}
else {
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
pushFollow(FOLLOW_reg_in_arg43190);
reg198=reg();
state._fsp--;
adaptor.addChild(root_0, reg198.getTree());
char_literal199=(Token)match(input,99,FOLLOW_99_in_arg43192);
pushFollow(FOLLOW_reg_in_arg43195);
reg200=reg();
state._fsp--;
adaptor.addChild(root_0, reg200.getTree());
char_literal201=(Token)match(input,99,FOLLOW_99_in_arg43197);
pushFollow(FOLLOW_reg_in_arg43200);
reg202=reg();
state._fsp--;
adaptor.addChild(root_0, reg202.getTree());
}
break;
case 2 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:598:4: NOP
{
NOP203=(Token)match(input,NOP,FOLLOW_NOP_in_arg43205);
stream_NOP.add(NOP203);
// AST REWRITE
// elements: NOP, NOP, NOP, NOP
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 598:9: -> ^( REG NOP ) ^( REG NOP ) ^( REG NOP ) ^( REG NOP )
{
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:598:12: ^( REG NOP )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(REG, "REG"), root_1);
adaptor.addChild(root_1, stream_NOP.nextNode());
adaptor.addChild(root_0, root_1);
}
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:598:23: ^( REG NOP )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(REG, "REG"), root_1);
adaptor.addChild(root_1, stream_NOP.nextNode());
adaptor.addChild(root_0, root_1);
}
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:598:34: ^( REG NOP )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(REG, "REG"), root_1);
adaptor.addChild(root_1, stream_NOP.nextNode());
adaptor.addChild(root_0, root_1);
}
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:598:45: ^( REG NOP )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(REG, "REG"), root_1);
adaptor.addChild(root_1, stream_NOP.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
break;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "arg4"
public static class reg_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "reg"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:601:1: reg : ( REG_PREFIX num -> ^( REG num ) | REG_PREFIX '[' const_expr ']' -> ^( REG const_expr ) | PERCENT symbol_ref -> ^( REG symbol_ref ) );
public final InchwormAsmParser.reg_return reg() throws RecognitionException {
InchwormAsmParser.reg_return retval = new InchwormAsmParser.reg_return();
retval.start = input.LT(1);
Object root_0 = null;
Token REG_PREFIX204=null;
Token REG_PREFIX206=null;
Token char_literal207=null;
Token char_literal209=null;
Token PERCENT210=null;
ParserRuleReturnScope num205 =null;
ParserRuleReturnScope const_expr208 =null;
ParserRuleReturnScope symbol_ref211 =null;
Object REG_PREFIX204_tree=null;
Object REG_PREFIX206_tree=null;
Object char_literal207_tree=null;
Object char_literal209_tree=null;
Object PERCENT210_tree=null;
RewriteRuleTokenStream stream_PERCENT=new RewriteRuleTokenStream(adaptor,"token PERCENT");
RewriteRuleTokenStream stream_107=new RewriteRuleTokenStream(adaptor,"token 107");
RewriteRuleTokenStream stream_108=new RewriteRuleTokenStream(adaptor,"token 108");
RewriteRuleTokenStream stream_REG_PREFIX=new RewriteRuleTokenStream(adaptor,"token REG_PREFIX");
RewriteRuleSubtreeStream stream_num=new RewriteRuleSubtreeStream(adaptor,"rule num");
RewriteRuleSubtreeStream stream_const_expr=new RewriteRuleSubtreeStream(adaptor,"rule const_expr");
RewriteRuleSubtreeStream stream_symbol_ref=new RewriteRuleSubtreeStream(adaptor,"rule symbol_ref");
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:601:5: ( REG_PREFIX num -> ^( REG num ) | REG_PREFIX '[' const_expr ']' -> ^( REG const_expr ) | PERCENT symbol_ref -> ^( REG symbol_ref ) )
int alt63=3;
int LA63_0 = input.LA(1);
if ( (LA63_0==REG_PREFIX) ) {
int LA63_1 = input.LA(2);
if ( (LA63_1==107) ) {
alt63=2;
}
else if ( (LA63_1==BINARY_LITERAL||LA63_1==DECIMAL_LITERAL||LA63_1==HEX_LITERAL) ) {
alt63=1;
}
else {
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 63, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA63_0==PERCENT) ) {
alt63=3;
}
else {
NoViableAltException nvae =
new NoViableAltException("", 63, 0, input);
throw nvae;
}
switch (alt63) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:601:7: REG_PREFIX num
{
REG_PREFIX204=(Token)match(input,REG_PREFIX,FOLLOW_REG_PREFIX_in_reg3243);
stream_REG_PREFIX.add(REG_PREFIX204);
pushFollow(FOLLOW_num_in_reg3245);
num205=num();
state._fsp--;
stream_num.add(num205.getTree());
// AST REWRITE
// elements: num
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 601:25: -> ^( REG num )
{
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:601:28: ^( REG num )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(REG, "REG"), root_1);
adaptor.addChild(root_1, stream_num.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
break;
case 2 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:602:4: REG_PREFIX '[' const_expr ']'
{
REG_PREFIX206=(Token)match(input,REG_PREFIX,FOLLOW_REG_PREFIX_in_reg3261);
stream_REG_PREFIX.add(REG_PREFIX206);
char_literal207=(Token)match(input,107,FOLLOW_107_in_reg3263);
stream_107.add(char_literal207);
pushFollow(FOLLOW_const_expr_in_reg3265);
const_expr208=const_expr();
state._fsp--;
stream_const_expr.add(const_expr208.getTree());
char_literal209=(Token)match(input,108,FOLLOW_108_in_reg3267);
stream_108.add(char_literal209);
// AST REWRITE
// elements: const_expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 602:35: -> ^( REG const_expr )
{
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:602:38: ^( REG const_expr )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(REG, "REG"), root_1);
adaptor.addChild(root_1, stream_const_expr.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
break;
case 3 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:603:4: PERCENT symbol_ref
{
PERCENT210=(Token)match(input,PERCENT,FOLLOW_PERCENT_in_reg3281);
stream_PERCENT.add(PERCENT210);
pushFollow(FOLLOW_symbol_ref_in_reg3283);
symbol_ref211=symbol_ref();
state._fsp--;
stream_symbol_ref.add(symbol_ref211.getTree());
// AST REWRITE
// elements: symbol_ref
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 603:24: -> ^( REG symbol_ref )
{
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:603:27: ^( REG symbol_ref )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(REG, "REG"), root_1);
adaptor.addChild(root_1, stream_symbol_ref.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
break;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "reg"
public static class reg_symbol_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "reg_symbol"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:606:1: reg_symbol : ( IP -> NUM[Integer.toHexString(params.getNumRegs() - R_IP.getOffset())] | OUT1 -> NUM[Integer.toHexString(params.getNumRegs() - R_OUT1.getOffset())] | OUT2 -> NUM[Integer.toHexString(params.getNumRegs() - R_OUT2.getOffset())] | IN -> NUM[Integer.toHexString(params.getNumRegs() - R_IN.getOffset())] | CTRL -> NUM[Integer.toHexString(params.getNumRegs() - R_CTRL.getOffset())] | CARRY -> NUM[Integer.toHexString(params.getNumRegs() - R_CARRY.getOffset())] | ZERO -> NUM[Integer.toHexString(params.getNumRegs() - R_ZERO.getOffset())] | SIGN -> NUM[Integer.toHexString(params.getNumRegs() - R_SIGN.getOffset())] | OVERFLOW -> NUM[Integer.toHexString(params.getNumRegs() - R_OVERFLOW.getOffset())] | FLAGS -> NUM[Integer.toHexString(params.getNumRegs() - R_FLAGS.getOffset())] | NOP -> NUM[Integer.toHexString(params.getNumRegs() - R_NOP.getOffset())] | CTR_FLAG -> NUM[Integer.toHexString(regIndex)] | LOCAL_REG -> NUM[Integer.toHexString(regIndex)] | FREEREGS -> NUM[Integer.toHexString(params.getNumRegs() - params.getFirstSpecialOffset())] );
public final InchwormAsmParser.reg_symbol_return reg_symbol() throws RecognitionException {
InchwormAsmParser.reg_symbol_return retval = new InchwormAsmParser.reg_symbol_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IP212=null;
Token OUT1213=null;
Token OUT2214=null;
Token IN215=null;
Token CTRL216=null;
Token CARRY217=null;
Token ZERO218=null;
Token SIGN219=null;
Token OVERFLOW220=null;
Token FLAGS221=null;
Token NOP222=null;
Token CTR_FLAG223=null;
Token LOCAL_REG224=null;
Token FREEREGS225=null;
Object IP212_tree=null;
Object OUT1213_tree=null;
Object OUT2214_tree=null;
Object IN215_tree=null;
Object CTRL216_tree=null;
Object CARRY217_tree=null;
Object ZERO218_tree=null;
Object SIGN219_tree=null;
Object OVERFLOW220_tree=null;
Object FLAGS221_tree=null;
Object NOP222_tree=null;
Object CTR_FLAG223_tree=null;
Object LOCAL_REG224_tree=null;
Object FREEREGS225_tree=null;
RewriteRuleTokenStream stream_OUT2=new RewriteRuleTokenStream(adaptor,"token OUT2");
RewriteRuleTokenStream stream_ZERO=new RewriteRuleTokenStream(adaptor,"token ZERO");
RewriteRuleTokenStream stream_IN=new RewriteRuleTokenStream(adaptor,"token IN");
RewriteRuleTokenStream stream_OUT1=new RewriteRuleTokenStream(adaptor,"token OUT1");
RewriteRuleTokenStream stream_IP=new RewriteRuleTokenStream(adaptor,"token IP");
RewriteRuleTokenStream stream_CTR_FLAG=new RewriteRuleTokenStream(adaptor,"token CTR_FLAG");
RewriteRuleTokenStream stream_FREEREGS=new RewriteRuleTokenStream(adaptor,"token FREEREGS");
RewriteRuleTokenStream stream_NOP=new RewriteRuleTokenStream(adaptor,"token NOP");
RewriteRuleTokenStream stream_CTRL=new RewriteRuleTokenStream(adaptor,"token CTRL");
RewriteRuleTokenStream stream_CARRY=new RewriteRuleTokenStream(adaptor,"token CARRY");
RewriteRuleTokenStream stream_OVERFLOW=new RewriteRuleTokenStream(adaptor,"token OVERFLOW");
RewriteRuleTokenStream stream_LOCAL_REG=new RewriteRuleTokenStream(adaptor,"token LOCAL_REG");
RewriteRuleTokenStream stream_FLAGS=new RewriteRuleTokenStream(adaptor,"token FLAGS");
RewriteRuleTokenStream stream_SIGN=new RewriteRuleTokenStream(adaptor,"token SIGN");
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:607:2: ( IP -> NUM[Integer.toHexString(params.getNumRegs() - R_IP.getOffset())] | OUT1 -> NUM[Integer.toHexString(params.getNumRegs() - R_OUT1.getOffset())] | OUT2 -> NUM[Integer.toHexString(params.getNumRegs() - R_OUT2.getOffset())] | IN -> NUM[Integer.toHexString(params.getNumRegs() - R_IN.getOffset())] | CTRL -> NUM[Integer.toHexString(params.getNumRegs() - R_CTRL.getOffset())] | CARRY -> NUM[Integer.toHexString(params.getNumRegs() - R_CARRY.getOffset())] | ZERO -> NUM[Integer.toHexString(params.getNumRegs() - R_ZERO.getOffset())] | SIGN -> NUM[Integer.toHexString(params.getNumRegs() - R_SIGN.getOffset())] | OVERFLOW -> NUM[Integer.toHexString(params.getNumRegs() - R_OVERFLOW.getOffset())] | FLAGS -> NUM[Integer.toHexString(params.getNumRegs() - R_FLAGS.getOffset())] | NOP -> NUM[Integer.toHexString(params.getNumRegs() - R_NOP.getOffset())] | CTR_FLAG -> NUM[Integer.toHexString(regIndex)] | LOCAL_REG -> NUM[Integer.toHexString(regIndex)] | FREEREGS -> NUM[Integer.toHexString(params.getNumRegs() - params.getFirstSpecialOffset())] )
int alt64=14;
switch ( input.LA(1) ) {
case IP:
{
alt64=1;
}
break;
case OUT1:
{
alt64=2;
}
break;
case OUT2:
{
alt64=3;
}
break;
case IN:
{
alt64=4;
}
break;
case CTRL:
{
alt64=5;
}
break;
case CARRY:
{
alt64=6;
}
break;
case ZERO:
{
alt64=7;
}
break;
case SIGN:
{
alt64=8;
}
break;
case OVERFLOW:
{
alt64=9;
}
break;
case FLAGS:
{
alt64=10;
}
break;
case NOP:
{
alt64=11;
}
break;
case CTR_FLAG:
{
alt64=12;
}
break;
case LOCAL_REG:
{
alt64=13;
}
break;
case FREEREGS:
{
alt64=14;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 64, 0, input);
throw nvae;
}
switch (alt64) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:607:4: IP
{
IP212=(Token)match(input,IP,FOLLOW_IP_in_reg_symbol3304);
stream_IP.add(IP212);
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 607:9: -> NUM[Integer.toHexString(params.getNumRegs() - R_IP.getOffset())]
{
adaptor.addChild(root_0, (Object)adaptor.create(NUM, Integer.toHexString(params.getNumRegs() - R_IP.getOffset())));
}
retval.tree = root_0;
}
break;
case 2 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:608:4: OUT1
{
OUT1213=(Token)match(input,OUT1,FOLLOW_OUT1_in_reg_symbol3316);
stream_OUT1.add(OUT1213);
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 608:11: -> NUM[Integer.toHexString(params.getNumRegs() - R_OUT1.getOffset())]
{
adaptor.addChild(root_0, (Object)adaptor.create(NUM, Integer.toHexString(params.getNumRegs() - R_OUT1.getOffset())));
}
retval.tree = root_0;
}
break;
case 3 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:609:4: OUT2
{
OUT2214=(Token)match(input,OUT2,FOLLOW_OUT2_in_reg_symbol3328);
stream_OUT2.add(OUT2214);
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 609:11: -> NUM[Integer.toHexString(params.getNumRegs() - R_OUT2.getOffset())]
{
adaptor.addChild(root_0, (Object)adaptor.create(NUM, Integer.toHexString(params.getNumRegs() - R_OUT2.getOffset())));
}
retval.tree = root_0;
}
break;
case 4 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:610:4: IN
{
IN215=(Token)match(input,IN,FOLLOW_IN_in_reg_symbol3340);
stream_IN.add(IN215);
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 610:9: -> NUM[Integer.toHexString(params.getNumRegs() - R_IN.getOffset())]
{
adaptor.addChild(root_0, (Object)adaptor.create(NUM, Integer.toHexString(params.getNumRegs() - R_IN.getOffset())));
}
retval.tree = root_0;
}
break;
case 5 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:611:6: CTRL
{
CTRL216=(Token)match(input,CTRL,FOLLOW_CTRL_in_reg_symbol3354);
stream_CTRL.add(CTRL216);
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 611:13: -> NUM[Integer.toHexString(params.getNumRegs() - R_CTRL.getOffset())]
{
adaptor.addChild(root_0, (Object)adaptor.create(NUM, Integer.toHexString(params.getNumRegs() - R_CTRL.getOffset())));
}
retval.tree = root_0;
}
break;
case 6 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:612:4: CARRY
{
CARRY217=(Token)match(input,CARRY,FOLLOW_CARRY_in_reg_symbol3366);
stream_CARRY.add(CARRY217);
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 612:11: -> NUM[Integer.toHexString(params.getNumRegs() - R_CARRY.getOffset())]
{
adaptor.addChild(root_0, (Object)adaptor.create(NUM, Integer.toHexString(params.getNumRegs() - R_CARRY.getOffset())));
}
retval.tree = root_0;
}
break;
case 7 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:613:4: ZERO
{
ZERO218=(Token)match(input,ZERO,FOLLOW_ZERO_in_reg_symbol3377);
stream_ZERO.add(ZERO218);
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 613:11: -> NUM[Integer.toHexString(params.getNumRegs() - R_ZERO.getOffset())]
{
adaptor.addChild(root_0, (Object)adaptor.create(NUM, Integer.toHexString(params.getNumRegs() - R_ZERO.getOffset())));
}
retval.tree = root_0;
}
break;
case 8 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:614:4: SIGN
{
SIGN219=(Token)match(input,SIGN,FOLLOW_SIGN_in_reg_symbol3389);
stream_SIGN.add(SIGN219);
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 614:11: -> NUM[Integer.toHexString(params.getNumRegs() - R_SIGN.getOffset())]
{
adaptor.addChild(root_0, (Object)adaptor.create(NUM, Integer.toHexString(params.getNumRegs() - R_SIGN.getOffset())));
}
retval.tree = root_0;
}
break;
case 9 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:615:4: OVERFLOW
{
OVERFLOW220=(Token)match(input,OVERFLOW,FOLLOW_OVERFLOW_in_reg_symbol3401);
stream_OVERFLOW.add(OVERFLOW220);
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 615:13: -> NUM[Integer.toHexString(params.getNumRegs() - R_OVERFLOW.getOffset())]
{
adaptor.addChild(root_0, (Object)adaptor.create(NUM, Integer.toHexString(params.getNumRegs() - R_OVERFLOW.getOffset())));
}
retval.tree = root_0;
}
break;
case 10 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:616:4: FLAGS
{
FLAGS221=(Token)match(input,FLAGS,FOLLOW_FLAGS_in_reg_symbol3411);
stream_FLAGS.add(FLAGS221);
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 616:11: -> NUM[Integer.toHexString(params.getNumRegs() - R_FLAGS.getOffset())]
{
adaptor.addChild(root_0, (Object)adaptor.create(NUM, Integer.toHexString(params.getNumRegs() - R_FLAGS.getOffset())));
}
retval.tree = root_0;
}
break;
case 11 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:617:4: NOP
{
NOP222=(Token)match(input,NOP,FOLLOW_NOP_in_reg_symbol3422);
stream_NOP.add(NOP222);
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 617:9: -> NUM[Integer.toHexString(params.getNumRegs() - R_NOP.getOffset())]
{
adaptor.addChild(root_0, (Object)adaptor.create(NUM, Integer.toHexString(params.getNumRegs() - R_NOP.getOffset())));
}
retval.tree = root_0;
}
break;
case 12 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:618:4: CTR_FLAG
{
CTR_FLAG223=(Token)match(input,CTR_FLAG,FOLLOW_CTR_FLAG_in_reg_symbol3433);
stream_CTR_FLAG.add(CTR_FLAG223);
int modulus = Integer.parseInt((CTR_FLAG223!=null?CTR_FLAG223.getText():null), 16);
int regIndex = params.getCounterRegisterLocation(modulus);
if (regIndex < 0)
throw new SyntaxError("ctr"+modulus+" was used but not declared in header: ", this.input);
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 623:7: -> NUM[Integer.toHexString(regIndex)]
{
adaptor.addChild(root_0, (Object)adaptor.create(NUM, Integer.toHexString(regIndex)));
}
retval.tree = root_0;
}
break;
case 13 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:624:5: LOCAL_REG
{
LOCAL_REG224=(Token)match(input,LOCAL_REG,FOLLOW_LOCAL_REG_in_reg_symbol3446);
stream_LOCAL_REG.add(LOCAL_REG224);
int localNdx = Integer.parseInt((LOCAL_REG224!=null?LOCAL_REG224.getText():null), 16);
int regIndex = params.getLocalRegisterLocation(localNdx);
if (regIndex < 0)
throw new SyntaxError("local"+localNdx+" is out of the defined range. ", this.input);
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 629:5: -> NUM[Integer.toHexString(regIndex)]
{
adaptor.addChild(root_0, (Object)adaptor.create(NUM, Integer.toHexString(regIndex)));
}
retval.tree = root_0;
}
break;
case 14 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:630:4: FREEREGS
{
FREEREGS225=(Token)match(input,FREEREGS,FOLLOW_FREEREGS_in_reg_symbol3458);
stream_FREEREGS.add(FREEREGS225);
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 630:13: -> NUM[Integer.toHexString(params.getNumRegs() - params.getFirstSpecialOffset())]
{
adaptor.addChild(root_0, (Object)adaptor.create(NUM, Integer.toHexString(params.getNumRegs() - params.getFirstSpecialOffset())));
}
retval.tree = root_0;
}
break;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "reg_symbol"
public static class num_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "num"
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:633:1: num : ( HEX_LITERAL | BINARY_LITERAL | DECIMAL_LITERAL ) -> NUM[$text] ;
public final InchwormAsmParser.num_return num() throws RecognitionException {
InchwormAsmParser.num_return retval = new InchwormAsmParser.num_return();
retval.start = input.LT(1);
Object root_0 = null;
Token HEX_LITERAL226=null;
Token BINARY_LITERAL227=null;
Token DECIMAL_LITERAL228=null;
Object HEX_LITERAL226_tree=null;
Object BINARY_LITERAL227_tree=null;
Object DECIMAL_LITERAL228_tree=null;
RewriteRuleTokenStream stream_HEX_LITERAL=new RewriteRuleTokenStream(adaptor,"token HEX_LITERAL");
RewriteRuleTokenStream stream_BINARY_LITERAL=new RewriteRuleTokenStream(adaptor,"token BINARY_LITERAL");
RewriteRuleTokenStream stream_DECIMAL_LITERAL=new RewriteRuleTokenStream(adaptor,"token DECIMAL_LITERAL");
try {
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:633:5: ( ( HEX_LITERAL | BINARY_LITERAL | DECIMAL_LITERAL ) -> NUM[$text] )
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:633:7: ( HEX_LITERAL | BINARY_LITERAL | DECIMAL_LITERAL )
{
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:633:7: ( HEX_LITERAL | BINARY_LITERAL | DECIMAL_LITERAL )
int alt65=3;
switch ( input.LA(1) ) {
case HEX_LITERAL:
{
alt65=1;
}
break;
case BINARY_LITERAL:
{
alt65=2;
}
break;
case DECIMAL_LITERAL:
{
alt65=3;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 65, 0, input);
throw nvae;
}
switch (alt65) {
case 1 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:633:8: HEX_LITERAL
{
HEX_LITERAL226=(Token)match(input,HEX_LITERAL,FOLLOW_HEX_LITERAL_in_num3475);
stream_HEX_LITERAL.add(HEX_LITERAL226);
}
break;
case 2 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:633:22: BINARY_LITERAL
{
BINARY_LITERAL227=(Token)match(input,BINARY_LITERAL,FOLLOW_BINARY_LITERAL_in_num3479);
stream_BINARY_LITERAL.add(BINARY_LITERAL227);
}
break;
case 3 :
// /home/talm/proj/inchworm/git-migrate/inchworm/src/main/antlr/org.factcenter.inchworm/asm/InchwormAsm.g:633:39: DECIMAL_LITERAL
{
DECIMAL_LITERAL228=(Token)match(input,DECIMAL_LITERAL,FOLLOW_DECIMAL_LITERAL_in_num3483);
stream_DECIMAL_LITERAL.add(DECIMAL_LITERAL228);
}
break;
}
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 633:56: -> NUM[$text]
{
adaptor.addChild(root_0, (Object)adaptor.create(NUM, input.toString(retval.start,input.LT(-1))));
}
retval.tree = root_0;
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "num"
// Delegated rules
public static final BitSet FOLLOW_109_in_c_xor1035 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_95_in_c_and1042 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_111_in_c_or1049 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_104_in_c_shl1056 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_106_in_c_shr1063 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_98_in_c_add1070 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_100_in_c_sub1077 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STAR_in_c_mul1084 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_101_in_c_div1091 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PERCENT_in_c_mod1098 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_112_in_c_not1105 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_header_section_in_program1355 = new BitSet(new long[]{0x0000000000000002L,0x000000000002F000L});
public static final BitSet FOLLOW_const_section_in_program1358 = new BitSet(new long[]{0x0000000000000002L,0x000000000002D000L});
public static final BitSet FOLLOW_data_section_in_program1361 = new BitSet(new long[]{0x0000000000000002L,0x0000000000029000L});
public static final BitSet FOLLOW_code_section_in_program1364 = new BitSet(new long[]{0x0000000000000002L,0x0000000000028000L});
public static final BitSet FOLLOW_ram_section_in_program1367 = new BitSet(new long[]{0x0000000000000002L,0x0000000000008000L});
public static final BitSet FOLLOW_SEC_END_in_program1370 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SEC_HEADER_in_header_section1383 = new BitSet(new long[]{0x0000802000002000L,0x00000000040808B8L});
public static final BitSet FOLLOW_header_option_in_header_section1389 = new BitSet(new long[]{0x0000802000002000L,0x00000000040808B8L});
public static final BitSet FOLLOW_instruction_def_in_header_section1394 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_INSTRUCTIONDEF_in_instruction_def1419 = new BitSet(new long[]{0x30E6208200000130L,0x0000004071700600L});
public static final BitSet FOLLOW_102_in_instruction_def1422 = new BitSet(new long[]{0x30E6208200000130L,0x0000000071700600L});
public static final BitSet FOLLOW_opdesc_in_instruction_def1426 = new BitSet(new long[]{0x30E6208200000132L,0x0000000071700600L});
public static final BitSet FOLLOW_STAR_in_opdesc1451 = new BitSet(new long[]{0x30E6208200000130L,0x0000000071600600L});
public static final BitSet FOLLOW_opname_in_opdesc1454 = new BitSet(new long[]{0x0000000000000000L,0x0000004000000000L});
public static final BitSet FOLLOW_102_in_opdesc1456 = new BitSet(new long[]{0x0000080080000040L});
public static final BitSet FOLLOW_freq_in_opdesc1458 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STAR_in_opdesc1484 = new BitSet(new long[]{0x30E6208200000130L,0x0000000071600600L});
public static final BitSet FOLLOW_opname_in_opdesc1487 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_num_in_freq1619 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_WORDSIZE_in_header_option1633 = new BitSet(new long[]{0x0000080080000040L,0x0000004000000000L});
public static final BitSet FOLLOW_102_in_header_option1635 = new BitSet(new long[]{0x0000080080000040L});
public static final BitSet FOLLOW_num_in_header_option1638 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RAMWORDSIZE_in_header_option1655 = new BitSet(new long[]{0x0000080080000040L,0x0000004000000000L});
public static final BitSet FOLLOW_102_in_header_option1657 = new BitSet(new long[]{0x0000080080000040L});
public static final BitSet FOLLOW_num_in_header_option1660 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_REGPTRSIZE_in_header_option1677 = new BitSet(new long[]{0x0000080080000040L,0x0000004000000000L});
public static final BitSet FOLLOW_102_in_header_option1679 = new BitSet(new long[]{0x0000080080000040L});
public static final BitSet FOLLOW_num_in_header_option1682 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ROMPTRSIZE_in_header_option1699 = new BitSet(new long[]{0x0000080080000040L,0x0000004000000000L});
public static final BitSet FOLLOW_102_in_header_option1701 = new BitSet(new long[]{0x0000080080000040L});
public static final BitSet FOLLOW_num_in_header_option1704 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RAMPTRSIZE_in_header_option1721 = new BitSet(new long[]{0x0000080080000040L,0x0000004000000000L});
public static final BitSet FOLLOW_102_in_header_option1723 = new BitSet(new long[]{0x0000080080000040L});
public static final BitSet FOLLOW_num_in_header_option1726 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RAMLOADSIZE_in_header_option1743 = new BitSet(new long[]{0x0000080080000040L,0x0000004000000000L});
public static final BitSet FOLLOW_102_in_header_option1745 = new BitSet(new long[]{0x0000080080000040L});
public static final BitSet FOLLOW_num_in_header_option1748 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STACKPTRSIZE_in_header_option1765 = new BitSet(new long[]{0x0000080080000040L,0x0000004000000000L});
public static final BitSet FOLLOW_102_in_header_option1767 = new BitSet(new long[]{0x0000080080000040L});
public static final BitSet FOLLOW_num_in_header_option1770 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FRAMESIZE_in_header_option1787 = new BitSet(new long[]{0x0000080080000040L,0x0000004000000000L});
public static final BitSet FOLLOW_102_in_header_option1789 = new BitSet(new long[]{0x0000080080000040L});
public static final BitSet FOLLOW_num_in_header_option1792 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COUNTERS_in_header_option1809 = new BitSet(new long[]{0x0000080080000040L,0x0000004000000000L});
public static final BitSet FOLLOW_102_in_header_option1811 = new BitSet(new long[]{0x0000080080000040L});
public static final BitSet FOLLOW_countermodulus_in_header_option1814 = new BitSet(new long[]{0x0000080080000042L});
public static final BitSet FOLLOW_num_in_countermodulus1840 = new BitSet(new long[]{0x0000000000000002L,0x0000000800000000L});
public static final BitSet FOLLOW_99_in_countermodulus1843 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SEC_CONST_in_const_section1862 = new BitSet(new long[]{0xC11130500000C202L,0x0000000040040001L});
public static final BitSet FOLLOW_const_def_in_const_section1864 = new BitSet(new long[]{0xC11130500000C202L,0x0000000040040001L});
public static final BitSet FOLLOW_reserved_label_in_const_def1886 = new BitSet(new long[]{0x0000000000000000L,0x0000420000000000L});
public static final BitSet FOLLOW_set_in_const_def1888 = new BitSet(new long[]{0xC11138508002C240L,0x0001001140040001L});
public static final BitSet FOLLOW_const_expr_in_const_def1895 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ID_in_const_def1902 = new BitSet(new long[]{0x0000000000000000L,0x0000420000000000L});
public static final BitSet FOLLOW_105_in_const_def1905 = new BitSet(new long[]{0xC11138508002C240L,0x0001001140040001L});
public static final BitSet FOLLOW_110_in_const_def1907 = new BitSet(new long[]{0xC11138508002C240L,0x0001001140040001L});
public static final BitSet FOLLOW_const_expr_in_const_def1911 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SEC_DATA_in_data_section1931 = new BitSet(new long[]{0xC11138508002C242L,0x0000001140840103L});
public static final BitSet FOLLOW_data_def_in_data_section1933 = new BitSet(new long[]{0xC11138508002C242L,0x0000001140840103L});
public static final BitSet FOLLOW_reserved_label_in_data_def1962 = new BitSet(new long[]{0x0000000000000000L,0x0000004000000000L});
public static final BitSet FOLLOW_102_in_data_def1964 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ID_in_data_def1972 = new BitSet(new long[]{0x0000000000000000L,0x0000004000000000L});
public static final BitSet FOLLOW_102_in_data_def1974 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_current_pos_ref_in_data_def2006 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_reg_in_data_def2031 = new BitSet(new long[]{0x0000000000000000L,0x0000424000000000L});
public static final BitSet FOLLOW_102_in_data_def2035 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_105_in_data_def2039 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_110_in_data_def2043 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STRING_in_data_def2058 = new BitSet(new long[]{0x0000000000000002L,0x0000000800000000L});
public static final BitSet FOLLOW_99_in_data_def2061 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_100_in_data_def2084 = new BitSet(new long[]{0x0000080080000040L});
public static final BitSet FOLLOW_num_in_data_def2086 = new BitSet(new long[]{0x0000000000000002L,0x0000000800000000L});
public static final BitSet FOLLOW_99_in_data_def2089 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_num_in_data_def2115 = new BitSet(new long[]{0x0000000000000002L,0x0000000800000000L});
public static final BitSet FOLLOW_99_in_data_def2118 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_96_in_data_def2145 = new BitSet(new long[]{0xC11138508002C240L,0x0001001140040001L});
public static final BitSet FOLLOW_const_expr_in_data_def2147 = new BitSet(new long[]{0x0000000000000000L,0x0000000200000000L});
public static final BitSet FOLLOW_97_in_data_def2149 = new BitSet(new long[]{0x0000000000000002L,0x0000000800000000L});
public static final BitSet FOLLOW_99_in_data_def2152 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SEC_RAM_in_ram_section2176 = new BitSet(new long[]{0xC11138508000C242L,0x0000000040040001L});
public static final BitSet FOLLOW_ram_def_in_ram_section2178 = new BitSet(new long[]{0xC11138508000C242L,0x0000000040040001L});
public static final BitSet FOLLOW_reserved_label_in_ram_def2207 = new BitSet(new long[]{0x0000000000000000L,0x0000004000000000L});
public static final BitSet FOLLOW_102_in_ram_def2209 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ID_in_ram_def2217 = new BitSet(new long[]{0x0000000000000000L,0x0000004000000000L});
public static final BitSet FOLLOW_102_in_ram_def2219 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_num_in_ram_def2254 = new BitSet(new long[]{0x0000000000000002L,0x0000000800000000L});
public static final BitSet FOLLOW_99_in_ram_def2257 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SEC_CODE_in_code_section2292 = new BitSet(new long[]{0xF1F730D20000C332L,0x0000000071640601L});
public static final BitSet FOLLOW_codeop_in_code_section2294 = new BitSet(new long[]{0xF1F730D20000C332L,0x0000000071640601L});
public static final BitSet FOLLOW_label_def_in_codeop2314 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_instruction_in_codeop2318 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_const_expr_in_immediate2329 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_const_prec5_in_const_expr2340 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_const_prec4_in_const_prec52354 = new BitSet(new long[]{0x0000000000000002L,0x0000800000000000L});
public static final BitSet FOLLOW_const_prec5_op_in_const_prec52357 = new BitSet(new long[]{0xC11138508002C240L,0x0001001140040001L});
public static final BitSet FOLLOW_const_prec4_in_const_prec52362 = new BitSet(new long[]{0x0000000000000002L,0x0000800000000000L});
public static final BitSet FOLLOW_const_prec3_in_const_prec42382 = new BitSet(new long[]{0x0000000000000002L,0x0000200080000000L});
public static final BitSet FOLLOW_const_prec4_op_in_const_prec42385 = new BitSet(new long[]{0xC11138508002C240L,0x0001001140040001L});
public static final BitSet FOLLOW_const_prec3_in_const_prec42390 = new BitSet(new long[]{0x0000000000000002L,0x0000200080000000L});
public static final BitSet FOLLOW_const_prec2_in_const_prec32409 = new BitSet(new long[]{0x0000000000000002L,0x0000050000000000L});
public static final BitSet FOLLOW_const_prec3_op_in_const_prec32412 = new BitSet(new long[]{0xC11138508002C240L,0x0001001140040001L});
public static final BitSet FOLLOW_const_prec2_in_const_prec32417 = new BitSet(new long[]{0x0000000000000002L,0x0000050000000000L});
public static final BitSet FOLLOW_const_prec1_in_const_prec22436 = new BitSet(new long[]{0x0000000000000002L,0x0000001400000000L});
public static final BitSet FOLLOW_const_prec2_op_in_const_prec22439 = new BitSet(new long[]{0xC11138508002C240L,0x0001001140040001L});
public static final BitSet FOLLOW_const_prec1_in_const_prec22444 = new BitSet(new long[]{0x0000000000000002L,0x0000001400000000L});
public static final BitSet FOLLOW_const_prec0_in_const_prec12463 = new BitSet(new long[]{0x0000000000000002L,0x0000002000100002L});
public static final BitSet FOLLOW_const_prec1_op_in_const_prec12466 = new BitSet(new long[]{0xC11138508002C240L,0x0001001140040001L});
public static final BitSet FOLLOW_const_prec0_in_const_prec12471 = new BitSet(new long[]{0x0000000000000002L,0x0000002000100002L});
public static final BitSet FOLLOW_const_unary_op_in_const_prec02488 = new BitSet(new long[]{0xC11138508002C240L,0x0000000140040001L});
public static final BitSet FOLLOW_const_atom_in_const_prec02491 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_const_atom_in_const_prec02499 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_num_in_const_atom2513 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_symbol_ref_in_const_atom2517 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_96_in_const_atom2521 = new BitSet(new long[]{0xC11138508002C240L,0x0001001140040001L});
public static final BitSet FOLLOW_const_expr_in_const_atom2523 = new BitSet(new long[]{0x0000000000000000L,0x0000000200000000L});
public static final BitSet FOLLOW_97_in_const_atom2525 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_c_not_in_const_unary_op2545 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_c_sub_in_const_unary_op2556 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_c_mul_in_const_prec1_op2575 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_c_div_in_const_prec1_op2586 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_c_mod_in_const_prec1_op2597 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_c_add_in_const_prec2_op2618 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_c_sub_in_const_prec2_op2629 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_c_shl_in_const_prec3_op2647 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_c_shr_in_const_prec3_op2658 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_c_and_in_const_prec4_op2676 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_c_xor_in_const_prec4_op2687 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_c_or_in_const_prec5_op2708 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_reg_symbol_in_reserved_label2727 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_reserved_label_in_label_def2740 = new BitSet(new long[]{0x0000000000000000L,0x0000004000000000L});
public static final BitSet FOLLOW_102_in_label_def2742 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ID_in_label_def2749 = new BitSet(new long[]{0x0000000000000000L,0x0000004000000000L});
public static final BitSet FOLLOW_102_in_label_def2752 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ID_in_symbol_ref2766 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_current_pos_ref_in_symbol_ref2779 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_reg_symbol_in_symbol_ref2784 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CURRENT_POS_in_current_pos_ref2797 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_op_in_instruction2818 = new BitSet(new long[]{0x30E6208600000130L,0x0000000071600600L});
public static final BitSet FOLLOW_EOI_in_instruction2822 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EOF_in_instruction2824 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ZERO_in_op2857 = new BitSet(new long[]{0x0100000000000000L,0x0000000000000102L});
public static final BitSet FOLLOW_arg1_in_op2860 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_XORI_in_op2866 = new BitSet(new long[]{0x0100000000000000L,0x0000000000000102L});
public static final BitSet FOLLOW_arg1i_in_op2869 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_XOR_in_op2874 = new BitSet(new long[]{0x0100000000000000L,0x0000000000000102L});
public static final BitSet FOLLOW_arg3_in_op2877 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_OR_in_op2882 = new BitSet(new long[]{0x0100000000000000L,0x0000000000000102L});
public static final BitSet FOLLOW_arg3_in_op2885 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ADD_in_op2890 = new BitSet(new long[]{0x0100000000000000L,0x0000000000000102L});
public static final BitSet FOLLOW_arg3_in_op2893 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SUB_in_op2898 = new BitSet(new long[]{0x0100000000000000L,0x0000000000000102L});
public static final BitSet FOLLOW_arg3_in_op2901 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_AND_in_op2906 = new BitSet(new long[]{0x0100000000000000L,0x0000000000000102L});
public static final BitSet FOLLOW_arg3_in_op2909 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ROL_in_op2914 = new BitSet(new long[]{0x0100000000000000L,0x0000000000000102L});
public static final BitSet FOLLOW_arg3_in_op2917 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MUL_in_op2922 = new BitSet(new long[]{0x0100000000000000L,0x0000000000000102L});
public static final BitSet FOLLOW_arg3_in_op2925 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DIV_in_op2929 = new BitSet(new long[]{0x0100000000000000L,0x0000000000000102L});
public static final BitSet FOLLOW_arg3_in_op2932 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LOAD_in_op2936 = new BitSet(new long[]{0x0100000000000000L,0x0000000000000102L});
public static final BitSet FOLLOW_arg2_in_op2939 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STORE_in_op2943 = new BitSet(new long[]{0x0100000000000000L,0x0000000000000102L});
public static final BitSet FOLLOW_arg2_in_op2946 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LOADREG_in_op2950 = new BitSet(new long[]{0x0100000000000000L,0x0000000000000102L});
public static final BitSet FOLLOW_arg2_in_op2953 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STOREREG_in_op2957 = new BitSet(new long[]{0x0100000000000000L,0x0000000000000102L});
public static final BitSet FOLLOW_arg2_in_op2960 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_OUT_in_op2965 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IN_in_op2969 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_HALT_in_op2973 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MUX_in_op2977 = new BitSet(new long[]{0x0100000000000000L,0x0000000000000102L});
public static final BitSet FOLLOW_arg4_in_op2980 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NEXT_in_op2984 = new BitSet(new long[]{0x0100000000000000L,0x0000000000000102L});
public static final BitSet FOLLOW_arg2_in_op2987 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CALL_in_op2991 = new BitSet(new long[]{0xC11138508002C240L,0x0001001140040001L});
public static final BitSet FOLLOW_argi_in_op2994 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RETURN_in_op2998 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_immediate_in_argi3011 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_reg_in_arg13022 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NOP_in_arg13027 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_reg_in_arg1i3048 = new BitSet(new long[]{0x0000000000000000L,0x0000008800000000L});
public static final BitSet FOLLOW_set_in_arg1i3050 = new BitSet(new long[]{0xC11138508002C240L,0x0001001140040001L});
public static final BitSet FOLLOW_immediate_in_arg1i3057 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NOP_in_arg1i3062 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_reg_in_arg23088 = new BitSet(new long[]{0x0000000000000000L,0x0000008800000000L});
public static final BitSet FOLLOW_set_in_arg23090 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000102L});
public static final BitSet FOLLOW_reg_in_arg23097 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NOP_in_arg23102 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_reg_in_arg33129 = new BitSet(new long[]{0x0000000000000000L,0x0000008800000000L});
public static final BitSet FOLLOW_set_in_arg33131 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000102L});
public static final BitSet FOLLOW_reg_in_arg33138 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_99_in_arg33140 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000102L});
public static final BitSet FOLLOW_reg_in_arg33143 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NOP_in_arg33148 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_reg_in_arg43181 = new BitSet(new long[]{0x0000000000000000L,0x0000008800000000L});
public static final BitSet FOLLOW_set_in_arg43183 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000102L});
public static final BitSet FOLLOW_reg_in_arg43190 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_99_in_arg43192 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000102L});
public static final BitSet FOLLOW_reg_in_arg43195 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_99_in_arg43197 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000102L});
public static final BitSet FOLLOW_reg_in_arg43200 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NOP_in_arg43205 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_REG_PREFIX_in_reg3243 = new BitSet(new long[]{0x0000080080000040L});
public static final BitSet FOLLOW_num_in_reg3245 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_REG_PREFIX_in_reg3261 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
public static final BitSet FOLLOW_107_in_reg3263 = new BitSet(new long[]{0xC11138508002C240L,0x0001001140040001L});
public static final BitSet FOLLOW_const_expr_in_reg3265 = new BitSet(new long[]{0x0000000000000000L,0x0000100000000000L});
public static final BitSet FOLLOW_108_in_reg3267 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PERCENT_in_reg3281 = new BitSet(new long[]{0xC11130500002C200L,0x0000000040040001L});
public static final BitSet FOLLOW_symbol_ref_in_reg3283 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IP_in_reg_symbol3304 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_OUT1_in_reg_symbol3316 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_OUT2_in_reg_symbol3328 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IN_in_reg_symbol3340 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CTRL_in_reg_symbol3354 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CARRY_in_reg_symbol3366 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ZERO_in_reg_symbol3377 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SIGN_in_reg_symbol3389 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_OVERFLOW_in_reg_symbol3401 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FLAGS_in_reg_symbol3411 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NOP_in_reg_symbol3422 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CTR_FLAG_in_reg_symbol3433 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LOCAL_REG_in_reg_symbol3446 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FREEREGS_in_reg_symbol3458 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_HEX_LITERAL_in_num3475 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_BINARY_LITERAL_in_num3479 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DECIMAL_LITERAL_in_num3483 = new BitSet(new long[]{0x0000000000000002L});
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy