jFuzzyLogic/fcl/output/FclParser.java

5164 lines
175 KiB
Java

// $ANTLR 3.1 Fcl.g 2014-02-13 11:23:10
package net.sourceforge.jFuzzyLogic.fcl;
import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;
import org.antlr.runtime.tree.*;
public class FclParser extends Parser {
public static final String[] tokenNames = new String[] {
"<invalid>", "<EOR>", "<DOWN>", "<UP>", "POINT", "FCL", "VALUE_REAL", "VALUE_ID", "ABS", "ACCU", "ACT", "AND", "ASUM", "BDIF", "BSUM", "COA", "COSINE", "COG", "COGS", "COGF", "COS", "DEFAULT", "DEFUZZIFY", "DMAX", "DMIN", "DSIGM", "EINSTEIN", "END_DEFUZZIFY", "END_FUNCTION_BLOCK", "END_FUZZIFY", "END_RULEBLOCK", "END_VAR", "EXP", "HAMACHER", "FUNCTION", "GAUSS", "GAUSS2", "GBELL", "FUNCTION_BLOCK", "FUZZIFY", "IF", "IS", "LM", "LN", "LOG", "MAX", "METHOD", "MIN", "NIPMIN", "NIPMAX", "MM", "NC", "NOT", "NSUM", "OR", "PROBOR", "PROD", "RANGE", "RM", "RULE", "RULEBLOCK", "SIGM", "SIN", "SINGLETONS", "SUM", "TAN", "TERM", "THEN", "TRAPE", "TRIAN", "TYPE_REAL", "VAR_INPUT", "VAR_OUTPUT", "WITH", "WS", "NEWLINE", "ASSIGN_OPERATOR", "COLON", "COMMA", "DOT", "DOTS", "HAT", "LEFT_CURLY", "LEFT_PARENTHESIS", "MINUS", "PERCENT", "PLUS", "RIGHT_CURLY", "RIGHT_PARENTHESIS", "SEMICOLON", "SLASH", "STAR", "DIGIT", "NUMBER", "LOWER", "UPPER", "LETTER", "ALPHANUM", "REAL", "COMMENT", "COMMENT_C", "COMMENT_SL", "ID"
};
public static final int FUNCTION=34;
public static final int SIGM=61;
public static final int STAR=91;
public static final int LN=43;
public static final int LETTER=96;
public static final int LM=42;
public static final int LOG=44;
public static final int EINSTEIN=26;
public static final int COG=17;
public static final int NOT=52;
public static final int EOF=-1;
public static final int COA=15;
public static final int HAT=81;
public static final int SIN=62;
public static final int EXP=32;
public static final int MM=50;
public static final int COS=20;
public static final int TAN=65;
public static final int LEFT_PARENTHESIS=83;
public static final int COMMENT=99;
public static final int GAUSS2=36;
public static final int NC=51;
public static final int END_RULEBLOCK=30;
public static final int VAR_OUTPUT=72;
public static final int ACT=10;
public static final int END_DEFUZZIFY=27;
public static final int RULE=59;
public static final int NUMBER=93;
public static final int GBELL=37;
public static final int SEMICOLON=89;
public static final int DMIN=24;
public static final int VALUE_REAL=6;
public static final int ALPHANUM=97;
public static final int TYPE_REAL=70;
public static final int ABS=8;
public static final int REAL=98;
public static final int WS=74;
public static final int NSUM=53;
public static final int LEFT_CURLY=82;
public static final int OR=54;
public static final int LOWER=94;
public static final int END_FUZZIFY=29;
public static final int UPPER=95;
public static final int TERM=66;
public static final int COGF=19;
public static final int PROBOR=55;
public static final int RIGHT_CURLY=87;
public static final int NIPMIN=48;
public static final int POINT=4;
public static final int RM=58;
public static final int MAX=45;
public static final int DOTS=80;
public static final int COGS=18;
public static final int ID=102;
public static final int AND=11;
public static final int SUM=64;
public static final int VALUE_ID=7;
public static final int DSIGM=25;
public static final int IF=40;
public static final int SLASH=90;
public static final int THEN=67;
public static final int RIGHT_PARENTHESIS=88;
public static final int COMMA=78;
public static final int IS=41;
public static final int DMAX=23;
public static final int TRAPE=68;
public static final int BDIF=13;
public static final int PROD=56;
public static final int COSINE=16;
public static final int PLUS=86;
public static final int DIGIT=92;
public static final int DOT=79;
public static final int FUNCTION_BLOCK=38;
public static final int WITH=73;
public static final int END_VAR=31;
public static final int ACCU=9;
public static final int ASUM=12;
public static final int PERCENT=85;
public static final int SINGLETONS=63;
public static final int NIPMAX=49;
public static final int ASSIGN_OPERATOR=76;
public static final int TRIAN=69;
public static final int DEFAULT=21;
public static final int HAMACHER=33;
public static final int COMMENT_C=100;
public static final int FCL=5;
public static final int RANGE=57;
public static final int MIN=47;
public static final int MINUS=84;
public static final int DEFUZZIFY=22;
public static final int COLON=77;
public static final int NEWLINE=75;
public static final int COMMENT_SL=101;
public static final int VAR_INPUT=71;
public static final int BSUM=14;
public static final int RULEBLOCK=60;
public static final int FUZZIFY=39;
public static final int END_FUNCTION_BLOCK=28;
public static final int METHOD=46;
public static final int GAUSS=35;
// delegates
// delegators
public FclParser(TokenStream input) {
this(input, new RecognizerSharedState());
}
public FclParser(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;
}
public String[] getTokenNames() { return FclParser.tokenNames; }
public String getGrammarFileName() { return "Fcl.g"; }
public static class main_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "main"
// Fcl.g:167:1: main : f= fcl -> ^( FCL $f) ;
public final FclParser.main_return main() throws RecognitionException {
FclParser.main_return retval = new FclParser.main_return();
retval.start = input.LT(1);
Object root_0 = null;
FclParser.fcl_return f = null;
RewriteRuleSubtreeStream stream_fcl=new RewriteRuleSubtreeStream(adaptor,"rule fcl");
try {
// Fcl.g:167:6: (f= fcl -> ^( FCL $f) )
// Fcl.g:167:8: f= fcl
{
pushFollow(FOLLOW_fcl_in_main2585);
f=fcl();
state._fsp--;
stream_fcl.add(f.getTree());
// AST REWRITE
// elements: f
// token labels:
// rule labels: f, retval
// token list labels:
// rule list labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_f=new RewriteRuleSubtreeStream(adaptor,"token f",f!=null?f.tree:null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
root_0 = (Object)adaptor.nil();
// 167:14: -> ^( FCL $f)
{
// Fcl.g:167:17: ^( FCL $f)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FCL, "FCL"), root_1);
adaptor.addChild(root_1, stream_f.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 {
}
return retval;
}
// $ANTLR end "main"
public static class fcl_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "fcl"
// Fcl.g:168:1: fcl : ( function_block )+ ;
public final FclParser.fcl_return fcl() throws RecognitionException {
FclParser.fcl_return retval = new FclParser.fcl_return();
retval.start = input.LT(1);
Object root_0 = null;
FclParser.function_block_return function_block1 = null;
try {
// Fcl.g:168:5: ( ( function_block )+ )
// Fcl.g:168:7: ( function_block )+
{
root_0 = (Object)adaptor.nil();
// Fcl.g:168:7: ( function_block )+
int cnt1=0;
loop1:
do {
int alt1=2;
int LA1_0 = input.LA(1);
if ( (LA1_0==FUNCTION_BLOCK) ) {
alt1=1;
}
switch (alt1) {
case 1 :
// Fcl.g:168:8: function_block
{
pushFollow(FOLLOW_function_block_in_fcl2602);
function_block1=function_block();
state._fsp--;
adaptor.addChild(root_0, function_block1.getTree());
}
break;
default :
if ( cnt1 >= 1 ) break loop1;
EarlyExitException eee =
new EarlyExitException(1, input);
throw eee;
}
cnt1++;
} while (true);
}
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 {
}
return retval;
}
// $ANTLR end "fcl"
public static class function_block_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "function_block"
// Fcl.g:171:1: function_block : FUNCTION_BLOCK ( ID )? ( declaration )* END_FUNCTION_BLOCK ;
public final FclParser.function_block_return function_block() throws RecognitionException {
FclParser.function_block_return retval = new FclParser.function_block_return();
retval.start = input.LT(1);
Object root_0 = null;
Token FUNCTION_BLOCK2=null;
Token ID3=null;
Token END_FUNCTION_BLOCK5=null;
FclParser.declaration_return declaration4 = null;
Object FUNCTION_BLOCK2_tree=null;
Object ID3_tree=null;
Object END_FUNCTION_BLOCK5_tree=null;
try {
// Fcl.g:171:16: ( FUNCTION_BLOCK ( ID )? ( declaration )* END_FUNCTION_BLOCK )
// Fcl.g:171:18: FUNCTION_BLOCK ( ID )? ( declaration )* END_FUNCTION_BLOCK
{
root_0 = (Object)adaptor.nil();
FUNCTION_BLOCK2=(Token)match(input,FUNCTION_BLOCK,FOLLOW_FUNCTION_BLOCK_in_function_block2613);
FUNCTION_BLOCK2_tree = (Object)adaptor.create(FUNCTION_BLOCK2);
root_0 = (Object)adaptor.becomeRoot(FUNCTION_BLOCK2_tree, root_0);
// Fcl.g:171:34: ( ID )?
int alt2=2;
int LA2_0 = input.LA(1);
if ( (LA2_0==ID) ) {
alt2=1;
}
switch (alt2) {
case 1 :
// Fcl.g:171:35: ID
{
ID3=(Token)match(input,ID,FOLLOW_ID_in_function_block2617);
ID3_tree = (Object)adaptor.create(ID3);
adaptor.addChild(root_0, ID3_tree);
}
break;
}
// Fcl.g:171:40: ( declaration )*
loop3:
do {
int alt3=2;
int LA3_0 = input.LA(1);
if ( (LA3_0==DEFUZZIFY||LA3_0==FUZZIFY||LA3_0==RULEBLOCK||(LA3_0>=VAR_INPUT && LA3_0<=VAR_OUTPUT)) ) {
alt3=1;
}
switch (alt3) {
case 1 :
// Fcl.g:171:41: declaration
{
pushFollow(FOLLOW_declaration_in_function_block2622);
declaration4=declaration();
state._fsp--;
adaptor.addChild(root_0, declaration4.getTree());
}
break;
default :
break loop3;
}
} while (true);
END_FUNCTION_BLOCK5=(Token)match(input,END_FUNCTION_BLOCK,FOLLOW_END_FUNCTION_BLOCK_in_function_block2626);
}
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 {
}
return retval;
}
// $ANTLR end "function_block"
public static class declaration_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "declaration"
// Fcl.g:172:1: declaration : ( var_input | var_output | fuzzify_block | defuzzify_block | rule_block );
public final FclParser.declaration_return declaration() throws RecognitionException {
FclParser.declaration_return retval = new FclParser.declaration_return();
retval.start = input.LT(1);
Object root_0 = null;
FclParser.var_input_return var_input6 = null;
FclParser.var_output_return var_output7 = null;
FclParser.fuzzify_block_return fuzzify_block8 = null;
FclParser.defuzzify_block_return defuzzify_block9 = null;
FclParser.rule_block_return rule_block10 = null;
try {
// Fcl.g:172:13: ( var_input | var_output | fuzzify_block | defuzzify_block | rule_block )
int alt4=5;
switch ( input.LA(1) ) {
case VAR_INPUT:
{
alt4=1;
}
break;
case VAR_OUTPUT:
{
alt4=2;
}
break;
case FUZZIFY:
{
alt4=3;
}
break;
case DEFUZZIFY:
{
alt4=4;
}
break;
case RULEBLOCK:
{
alt4=5;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 4, 0, input);
throw nvae;
}
switch (alt4) {
case 1 :
// Fcl.g:172:15: var_input
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_var_input_in_declaration2635);
var_input6=var_input();
state._fsp--;
adaptor.addChild(root_0, var_input6.getTree());
}
break;
case 2 :
// Fcl.g:172:27: var_output
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_var_output_in_declaration2639);
var_output7=var_output();
state._fsp--;
adaptor.addChild(root_0, var_output7.getTree());
}
break;
case 3 :
// Fcl.g:172:40: fuzzify_block
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_fuzzify_block_in_declaration2643);
fuzzify_block8=fuzzify_block();
state._fsp--;
adaptor.addChild(root_0, fuzzify_block8.getTree());
}
break;
case 4 :
// Fcl.g:172:56: defuzzify_block
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_defuzzify_block_in_declaration2647);
defuzzify_block9=defuzzify_block();
state._fsp--;
adaptor.addChild(root_0, defuzzify_block9.getTree());
}
break;
case 5 :
// Fcl.g:172:74: rule_block
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_rule_block_in_declaration2651);
rule_block10=rule_block();
state._fsp--;
adaptor.addChild(root_0, rule_block10.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 {
}
return retval;
}
// $ANTLR end "declaration"
public static class var_input_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "var_input"
// Fcl.g:175:1: var_input : VAR_INPUT ( var_def )* END_VAR ;
public final FclParser.var_input_return var_input() throws RecognitionException {
FclParser.var_input_return retval = new FclParser.var_input_return();
retval.start = input.LT(1);
Object root_0 = null;
Token VAR_INPUT11=null;
Token END_VAR13=null;
FclParser.var_def_return var_def12 = null;
Object VAR_INPUT11_tree=null;
Object END_VAR13_tree=null;
try {
// Fcl.g:175:11: ( VAR_INPUT ( var_def )* END_VAR )
// Fcl.g:175:13: VAR_INPUT ( var_def )* END_VAR
{
root_0 = (Object)adaptor.nil();
VAR_INPUT11=(Token)match(input,VAR_INPUT,FOLLOW_VAR_INPUT_in_var_input2660);
VAR_INPUT11_tree = (Object)adaptor.create(VAR_INPUT11);
root_0 = (Object)adaptor.becomeRoot(VAR_INPUT11_tree, root_0);
// Fcl.g:175:24: ( var_def )*
loop5:
do {
int alt5=2;
int LA5_0 = input.LA(1);
if ( (LA5_0==ID) ) {
alt5=1;
}
switch (alt5) {
case 1 :
// Fcl.g:175:25: var_def
{
pushFollow(FOLLOW_var_def_in_var_input2664);
var_def12=var_def();
state._fsp--;
adaptor.addChild(root_0, var_def12.getTree());
}
break;
default :
break loop5;
}
} while (true);
END_VAR13=(Token)match(input,END_VAR,FOLLOW_END_VAR_in_var_input2668);
}
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 {
}
return retval;
}
// $ANTLR end "var_input"
public static class var_output_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "var_output"
// Fcl.g:176:1: var_output : VAR_OUTPUT ( var_def )+ END_VAR ;
public final FclParser.var_output_return var_output() throws RecognitionException {
FclParser.var_output_return retval = new FclParser.var_output_return();
retval.start = input.LT(1);
Object root_0 = null;
Token VAR_OUTPUT14=null;
Token END_VAR16=null;
FclParser.var_def_return var_def15 = null;
Object VAR_OUTPUT14_tree=null;
Object END_VAR16_tree=null;
try {
// Fcl.g:176:12: ( VAR_OUTPUT ( var_def )+ END_VAR )
// Fcl.g:176:14: VAR_OUTPUT ( var_def )+ END_VAR
{
root_0 = (Object)adaptor.nil();
VAR_OUTPUT14=(Token)match(input,VAR_OUTPUT,FOLLOW_VAR_OUTPUT_in_var_output2676);
VAR_OUTPUT14_tree = (Object)adaptor.create(VAR_OUTPUT14);
root_0 = (Object)adaptor.becomeRoot(VAR_OUTPUT14_tree, root_0);
// Fcl.g:176:26: ( var_def )+
int cnt6=0;
loop6:
do {
int alt6=2;
int LA6_0 = input.LA(1);
if ( (LA6_0==ID) ) {
alt6=1;
}
switch (alt6) {
case 1 :
// Fcl.g:176:27: var_def
{
pushFollow(FOLLOW_var_def_in_var_output2680);
var_def15=var_def();
state._fsp--;
adaptor.addChild(root_0, var_def15.getTree());
}
break;
default :
if ( cnt6 >= 1 ) break loop6;
EarlyExitException eee =
new EarlyExitException(6, input);
throw eee;
}
cnt6++;
} while (true);
END_VAR16=(Token)match(input,END_VAR,FOLLOW_END_VAR_in_var_output2684);
}
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 {
}
return retval;
}
// $ANTLR end "var_output"
public static class var_def_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "var_def"
// Fcl.g:177:1: var_def : ID COLON data_type SEMICOLON ( range )? ;
public final FclParser.var_def_return var_def() throws RecognitionException {
FclParser.var_def_return retval = new FclParser.var_def_return();
retval.start = input.LT(1);
Object root_0 = null;
Token ID17=null;
Token COLON18=null;
Token SEMICOLON20=null;
FclParser.data_type_return data_type19 = null;
FclParser.range_return range21 = null;
Object ID17_tree=null;
Object COLON18_tree=null;
Object SEMICOLON20_tree=null;
try {
// Fcl.g:177:9: ( ID COLON data_type SEMICOLON ( range )? )
// Fcl.g:177:11: ID COLON data_type SEMICOLON ( range )?
{
root_0 = (Object)adaptor.nil();
ID17=(Token)match(input,ID,FOLLOW_ID_in_var_def2692);
ID17_tree = (Object)adaptor.create(ID17);
root_0 = (Object)adaptor.becomeRoot(ID17_tree, root_0);
COLON18=(Token)match(input,COLON,FOLLOW_COLON_in_var_def2695);
pushFollow(FOLLOW_data_type_in_var_def2698);
data_type19=data_type();
state._fsp--;
adaptor.addChild(root_0, data_type19.getTree());
SEMICOLON20=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_var_def2700);
// Fcl.g:177:43: ( range )?
int alt7=2;
int LA7_0 = input.LA(1);
if ( (LA7_0==RANGE) ) {
alt7=1;
}
switch (alt7) {
case 1 :
// Fcl.g:177:44: range
{
pushFollow(FOLLOW_range_in_var_def2704);
range21=range();
state._fsp--;
adaptor.addChild(root_0, range21.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 {
}
return retval;
}
// $ANTLR end "var_def"
public static class fuzzify_block_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "fuzzify_block"
// Fcl.g:180:1: fuzzify_block : FUZZIFY ID ( linguistic_term )* END_FUZZIFY ;
public final FclParser.fuzzify_block_return fuzzify_block() throws RecognitionException {
FclParser.fuzzify_block_return retval = new FclParser.fuzzify_block_return();
retval.start = input.LT(1);
Object root_0 = null;
Token FUZZIFY22=null;
Token ID23=null;
Token END_FUZZIFY25=null;
FclParser.linguistic_term_return linguistic_term24 = null;
Object FUZZIFY22_tree=null;
Object ID23_tree=null;
Object END_FUZZIFY25_tree=null;
try {
// Fcl.g:180:15: ( FUZZIFY ID ( linguistic_term )* END_FUZZIFY )
// Fcl.g:180:17: FUZZIFY ID ( linguistic_term )* END_FUZZIFY
{
root_0 = (Object)adaptor.nil();
FUZZIFY22=(Token)match(input,FUZZIFY,FOLLOW_FUZZIFY_in_fuzzify_block2716);
FUZZIFY22_tree = (Object)adaptor.create(FUZZIFY22);
root_0 = (Object)adaptor.becomeRoot(FUZZIFY22_tree, root_0);
ID23=(Token)match(input,ID,FOLLOW_ID_in_fuzzify_block2719);
ID23_tree = (Object)adaptor.create(ID23);
adaptor.addChild(root_0, ID23_tree);
// Fcl.g:180:29: ( linguistic_term )*
loop8:
do {
int alt8=2;
int LA8_0 = input.LA(1);
if ( (LA8_0==TERM) ) {
alt8=1;
}
switch (alt8) {
case 1 :
// Fcl.g:180:30: linguistic_term
{
pushFollow(FOLLOW_linguistic_term_in_fuzzify_block2722);
linguistic_term24=linguistic_term();
state._fsp--;
adaptor.addChild(root_0, linguistic_term24.getTree());
}
break;
default :
break loop8;
}
} while (true);
END_FUZZIFY25=(Token)match(input,END_FUZZIFY,FOLLOW_END_FUZZIFY_in_fuzzify_block2726);
}
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 {
}
return retval;
}
// $ANTLR end "fuzzify_block"
public static class linguistic_term_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "linguistic_term"
// Fcl.g:181:1: linguistic_term : TERM ID ASSIGN_OPERATOR membership_function SEMICOLON ;
public final FclParser.linguistic_term_return linguistic_term() throws RecognitionException {
FclParser.linguistic_term_return retval = new FclParser.linguistic_term_return();
retval.start = input.LT(1);
Object root_0 = null;
Token TERM26=null;
Token ID27=null;
Token ASSIGN_OPERATOR28=null;
Token SEMICOLON30=null;
FclParser.membership_function_return membership_function29 = null;
Object TERM26_tree=null;
Object ID27_tree=null;
Object ASSIGN_OPERATOR28_tree=null;
Object SEMICOLON30_tree=null;
try {
// Fcl.g:181:16: ( TERM ID ASSIGN_OPERATOR membership_function SEMICOLON )
// Fcl.g:181:18: TERM ID ASSIGN_OPERATOR membership_function SEMICOLON
{
root_0 = (Object)adaptor.nil();
TERM26=(Token)match(input,TERM,FOLLOW_TERM_in_linguistic_term2733);
TERM26_tree = (Object)adaptor.create(TERM26);
root_0 = (Object)adaptor.becomeRoot(TERM26_tree, root_0);
ID27=(Token)match(input,ID,FOLLOW_ID_in_linguistic_term2736);
ID27_tree = (Object)adaptor.create(ID27);
adaptor.addChild(root_0, ID27_tree);
ASSIGN_OPERATOR28=(Token)match(input,ASSIGN_OPERATOR,FOLLOW_ASSIGN_OPERATOR_in_linguistic_term2738);
pushFollow(FOLLOW_membership_function_in_linguistic_term2741);
membership_function29=membership_function();
state._fsp--;
adaptor.addChild(root_0, membership_function29.getTree());
SEMICOLON30=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_linguistic_term2743);
}
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 {
}
return retval;
}
// $ANTLR end "linguistic_term"
public static class membership_function_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "membership_function"
// Fcl.g:182:1: membership_function : ( function | singleton | singletons | piece_wise_linear | gauss | gauss2 | trian | trape | sigm | gbell | cosine | dsigm );
public final FclParser.membership_function_return membership_function() throws RecognitionException {
FclParser.membership_function_return retval = new FclParser.membership_function_return();
retval.start = input.LT(1);
Object root_0 = null;
FclParser.function_return function31 = null;
FclParser.singleton_return singleton32 = null;
FclParser.singletons_return singletons33 = null;
FclParser.piece_wise_linear_return piece_wise_linear34 = null;
FclParser.gauss_return gauss35 = null;
FclParser.gauss2_return gauss236 = null;
FclParser.trian_return trian37 = null;
FclParser.trape_return trape38 = null;
FclParser.sigm_return sigm39 = null;
FclParser.gbell_return gbell40 = null;
FclParser.cosine_return cosine41 = null;
FclParser.dsigm_return dsigm42 = null;
try {
// Fcl.g:182:21: ( function | singleton | singletons | piece_wise_linear | gauss | gauss2 | trian | trape | sigm | gbell | cosine | dsigm )
int alt9=12;
switch ( input.LA(1) ) {
case FUNCTION:
{
alt9=1;
}
break;
case REAL:
case ID:
{
alt9=2;
}
break;
case SINGLETONS:
{
alt9=3;
}
break;
case LEFT_PARENTHESIS:
{
alt9=4;
}
break;
case GAUSS:
{
alt9=5;
}
break;
case GAUSS2:
{
alt9=6;
}
break;
case TRIAN:
{
alt9=7;
}
break;
case TRAPE:
{
alt9=8;
}
break;
case SIGM:
{
alt9=9;
}
break;
case GBELL:
{
alt9=10;
}
break;
case COSINE:
{
alt9=11;
}
break;
case DSIGM:
{
alt9=12;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 9, 0, input);
throw nvae;
}
switch (alt9) {
case 1 :
// Fcl.g:182:23: function
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_function_in_membership_function2751);
function31=function();
state._fsp--;
adaptor.addChild(root_0, function31.getTree());
}
break;
case 2 :
// Fcl.g:182:34: singleton
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_singleton_in_membership_function2755);
singleton32=singleton();
state._fsp--;
adaptor.addChild(root_0, singleton32.getTree());
}
break;
case 3 :
// Fcl.g:182:46: singletons
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_singletons_in_membership_function2759);
singletons33=singletons();
state._fsp--;
adaptor.addChild(root_0, singletons33.getTree());
}
break;
case 4 :
// Fcl.g:182:59: piece_wise_linear
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_piece_wise_linear_in_membership_function2763);
piece_wise_linear34=piece_wise_linear();
state._fsp--;
adaptor.addChild(root_0, piece_wise_linear34.getTree());
}
break;
case 5 :
// Fcl.g:182:79: gauss
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_gauss_in_membership_function2767);
gauss35=gauss();
state._fsp--;
adaptor.addChild(root_0, gauss35.getTree());
}
break;
case 6 :
// Fcl.g:182:87: gauss2
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_gauss2_in_membership_function2771);
gauss236=gauss2();
state._fsp--;
adaptor.addChild(root_0, gauss236.getTree());
}
break;
case 7 :
// Fcl.g:182:96: trian
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_trian_in_membership_function2775);
trian37=trian();
state._fsp--;
adaptor.addChild(root_0, trian37.getTree());
}
break;
case 8 :
// Fcl.g:182:104: trape
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_trape_in_membership_function2779);
trape38=trape();
state._fsp--;
adaptor.addChild(root_0, trape38.getTree());
}
break;
case 9 :
// Fcl.g:182:112: sigm
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_sigm_in_membership_function2783);
sigm39=sigm();
state._fsp--;
adaptor.addChild(root_0, sigm39.getTree());
}
break;
case 10 :
// Fcl.g:182:119: gbell
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_gbell_in_membership_function2787);
gbell40=gbell();
state._fsp--;
adaptor.addChild(root_0, gbell40.getTree());
}
break;
case 11 :
// Fcl.g:182:127: cosine
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_cosine_in_membership_function2791);
cosine41=cosine();
state._fsp--;
adaptor.addChild(root_0, cosine41.getTree());
}
break;
case 12 :
// Fcl.g:182:136: dsigm
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_dsigm_in_membership_function2795);
dsigm42=dsigm();
state._fsp--;
adaptor.addChild(root_0, dsigm42.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 {
}
return retval;
}
// $ANTLR end "membership_function"
public static class cosine_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "cosine"
// Fcl.g:183:1: cosine : COSINE atom atom ;
public final FclParser.cosine_return cosine() throws RecognitionException {
FclParser.cosine_return retval = new FclParser.cosine_return();
retval.start = input.LT(1);
Object root_0 = null;
Token COSINE43=null;
FclParser.atom_return atom44 = null;
FclParser.atom_return atom45 = null;
Object COSINE43_tree=null;
try {
// Fcl.g:183:7: ( COSINE atom atom )
// Fcl.g:183:9: COSINE atom atom
{
root_0 = (Object)adaptor.nil();
COSINE43=(Token)match(input,COSINE,FOLLOW_COSINE_in_cosine2802);
COSINE43_tree = (Object)adaptor.create(COSINE43);
root_0 = (Object)adaptor.becomeRoot(COSINE43_tree, root_0);
pushFollow(FOLLOW_atom_in_cosine2805);
atom44=atom();
state._fsp--;
adaptor.addChild(root_0, atom44.getTree());
pushFollow(FOLLOW_atom_in_cosine2807);
atom45=atom();
state._fsp--;
adaptor.addChild(root_0, atom45.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 {
}
return retval;
}
// $ANTLR end "cosine"
public static class dsigm_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "dsigm"
// Fcl.g:184:1: dsigm : DSIGM atom atom atom atom ;
public final FclParser.dsigm_return dsigm() throws RecognitionException {
FclParser.dsigm_return retval = new FclParser.dsigm_return();
retval.start = input.LT(1);
Object root_0 = null;
Token DSIGM46=null;
FclParser.atom_return atom47 = null;
FclParser.atom_return atom48 = null;
FclParser.atom_return atom49 = null;
FclParser.atom_return atom50 = null;
Object DSIGM46_tree=null;
try {
// Fcl.g:184:6: ( DSIGM atom atom atom atom )
// Fcl.g:184:8: DSIGM atom atom atom atom
{
root_0 = (Object)adaptor.nil();
DSIGM46=(Token)match(input,DSIGM,FOLLOW_DSIGM_in_dsigm2813);
DSIGM46_tree = (Object)adaptor.create(DSIGM46);
root_0 = (Object)adaptor.becomeRoot(DSIGM46_tree, root_0);
pushFollow(FOLLOW_atom_in_dsigm2816);
atom47=atom();
state._fsp--;
adaptor.addChild(root_0, atom47.getTree());
pushFollow(FOLLOW_atom_in_dsigm2818);
atom48=atom();
state._fsp--;
adaptor.addChild(root_0, atom48.getTree());
pushFollow(FOLLOW_atom_in_dsigm2820);
atom49=atom();
state._fsp--;
adaptor.addChild(root_0, atom49.getTree());
pushFollow(FOLLOW_atom_in_dsigm2822);
atom50=atom();
state._fsp--;
adaptor.addChild(root_0, atom50.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 {
}
return retval;
}
// $ANTLR end "dsigm"
public static class gauss_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "gauss"
// Fcl.g:185:1: gauss : GAUSS atom atom ;
public final FclParser.gauss_return gauss() throws RecognitionException {
FclParser.gauss_return retval = new FclParser.gauss_return();
retval.start = input.LT(1);
Object root_0 = null;
Token GAUSS51=null;
FclParser.atom_return atom52 = null;
FclParser.atom_return atom53 = null;
Object GAUSS51_tree=null;
try {
// Fcl.g:185:6: ( GAUSS atom atom )
// Fcl.g:185:8: GAUSS atom atom
{
root_0 = (Object)adaptor.nil();
GAUSS51=(Token)match(input,GAUSS,FOLLOW_GAUSS_in_gauss2828);
GAUSS51_tree = (Object)adaptor.create(GAUSS51);
root_0 = (Object)adaptor.becomeRoot(GAUSS51_tree, root_0);
pushFollow(FOLLOW_atom_in_gauss2831);
atom52=atom();
state._fsp--;
adaptor.addChild(root_0, atom52.getTree());
pushFollow(FOLLOW_atom_in_gauss2833);
atom53=atom();
state._fsp--;
adaptor.addChild(root_0, atom53.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 {
}
return retval;
}
// $ANTLR end "gauss"
public static class gauss2_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "gauss2"
// Fcl.g:186:1: gauss2 : GAUSS2 atom atom atom atom ;
public final FclParser.gauss2_return gauss2() throws RecognitionException {
FclParser.gauss2_return retval = new FclParser.gauss2_return();
retval.start = input.LT(1);
Object root_0 = null;
Token GAUSS254=null;
FclParser.atom_return atom55 = null;
FclParser.atom_return atom56 = null;
FclParser.atom_return atom57 = null;
FclParser.atom_return atom58 = null;
Object GAUSS254_tree=null;
try {
// Fcl.g:186:7: ( GAUSS2 atom atom atom atom )
// Fcl.g:186:9: GAUSS2 atom atom atom atom
{
root_0 = (Object)adaptor.nil();
GAUSS254=(Token)match(input,GAUSS2,FOLLOW_GAUSS2_in_gauss22839);
GAUSS254_tree = (Object)adaptor.create(GAUSS254);
root_0 = (Object)adaptor.becomeRoot(GAUSS254_tree, root_0);
pushFollow(FOLLOW_atom_in_gauss22842);
atom55=atom();
state._fsp--;
adaptor.addChild(root_0, atom55.getTree());
pushFollow(FOLLOW_atom_in_gauss22844);
atom56=atom();
state._fsp--;
adaptor.addChild(root_0, atom56.getTree());
pushFollow(FOLLOW_atom_in_gauss22846);
atom57=atom();
state._fsp--;
adaptor.addChild(root_0, atom57.getTree());
pushFollow(FOLLOW_atom_in_gauss22848);
atom58=atom();
state._fsp--;
adaptor.addChild(root_0, atom58.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 {
}
return retval;
}
// $ANTLR end "gauss2"
public static class gbell_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "gbell"
// Fcl.g:187:1: gbell : GBELL atom atom atom ;
public final FclParser.gbell_return gbell() throws RecognitionException {
FclParser.gbell_return retval = new FclParser.gbell_return();
retval.start = input.LT(1);
Object root_0 = null;
Token GBELL59=null;
FclParser.atom_return atom60 = null;
FclParser.atom_return atom61 = null;
FclParser.atom_return atom62 = null;
Object GBELL59_tree=null;
try {
// Fcl.g:187:6: ( GBELL atom atom atom )
// Fcl.g:187:8: GBELL atom atom atom
{
root_0 = (Object)adaptor.nil();
GBELL59=(Token)match(input,GBELL,FOLLOW_GBELL_in_gbell2854);
GBELL59_tree = (Object)adaptor.create(GBELL59);
root_0 = (Object)adaptor.becomeRoot(GBELL59_tree, root_0);
pushFollow(FOLLOW_atom_in_gbell2857);
atom60=atom();
state._fsp--;
adaptor.addChild(root_0, atom60.getTree());
pushFollow(FOLLOW_atom_in_gbell2859);
atom61=atom();
state._fsp--;
adaptor.addChild(root_0, atom61.getTree());
pushFollow(FOLLOW_atom_in_gbell2861);
atom62=atom();
state._fsp--;
adaptor.addChild(root_0, atom62.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 {
}
return retval;
}
// $ANTLR end "gbell"
public static class piece_wise_linear_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "piece_wise_linear"
// Fcl.g:188:1: piece_wise_linear : ( points )+ ;
public final FclParser.piece_wise_linear_return piece_wise_linear() throws RecognitionException {
FclParser.piece_wise_linear_return retval = new FclParser.piece_wise_linear_return();
retval.start = input.LT(1);
Object root_0 = null;
FclParser.points_return points63 = null;
try {
// Fcl.g:188:18: ( ( points )+ )
// Fcl.g:188:20: ( points )+
{
root_0 = (Object)adaptor.nil();
// Fcl.g:188:20: ( points )+
int cnt10=0;
loop10:
do {
int alt10=2;
int LA10_0 = input.LA(1);
if ( (LA10_0==LEFT_PARENTHESIS) ) {
alt10=1;
}
switch (alt10) {
case 1 :
// Fcl.g:188:21: points
{
pushFollow(FOLLOW_points_in_piece_wise_linear2868);
points63=points();
state._fsp--;
adaptor.addChild(root_0, points63.getTree());
}
break;
default :
if ( cnt10 >= 1 ) break loop10;
EarlyExitException eee =
new EarlyExitException(10, input);
throw eee;
}
cnt10++;
} while (true);
}
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 {
}
return retval;
}
// $ANTLR end "piece_wise_linear"
public static class sigm_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "sigm"
// Fcl.g:189:1: sigm : SIGM atom atom ;
public final FclParser.sigm_return sigm() throws RecognitionException {
FclParser.sigm_return retval = new FclParser.sigm_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SIGM64=null;
FclParser.atom_return atom65 = null;
FclParser.atom_return atom66 = null;
Object SIGM64_tree=null;
try {
// Fcl.g:189:5: ( SIGM atom atom )
// Fcl.g:189:7: SIGM atom atom
{
root_0 = (Object)adaptor.nil();
SIGM64=(Token)match(input,SIGM,FOLLOW_SIGM_in_sigm2876);
SIGM64_tree = (Object)adaptor.create(SIGM64);
root_0 = (Object)adaptor.becomeRoot(SIGM64_tree, root_0);
pushFollow(FOLLOW_atom_in_sigm2879);
atom65=atom();
state._fsp--;
adaptor.addChild(root_0, atom65.getTree());
pushFollow(FOLLOW_atom_in_sigm2881);
atom66=atom();
state._fsp--;
adaptor.addChild(root_0, atom66.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 {
}
return retval;
}
// $ANTLR end "sigm"
public static class singleton_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "singleton"
// Fcl.g:190:1: singleton : atom ;
public final FclParser.singleton_return singleton() throws RecognitionException {
FclParser.singleton_return retval = new FclParser.singleton_return();
retval.start = input.LT(1);
Object root_0 = null;
FclParser.atom_return atom67 = null;
try {
// Fcl.g:190:11: ( atom )
// Fcl.g:190:13: atom
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_atom_in_singleton2888);
atom67=atom();
state._fsp--;
adaptor.addChild(root_0, atom67.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 {
}
return retval;
}
// $ANTLR end "singleton"
public static class singletons_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "singletons"
// Fcl.g:191:1: singletons : SINGLETONS ( points )+ ;
public final FclParser.singletons_return singletons() throws RecognitionException {
FclParser.singletons_return retval = new FclParser.singletons_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SINGLETONS68=null;
FclParser.points_return points69 = null;
Object SINGLETONS68_tree=null;
try {
// Fcl.g:191:11: ( SINGLETONS ( points )+ )
// Fcl.g:191:13: SINGLETONS ( points )+
{
root_0 = (Object)adaptor.nil();
SINGLETONS68=(Token)match(input,SINGLETONS,FOLLOW_SINGLETONS_in_singletons2894);
SINGLETONS68_tree = (Object)adaptor.create(SINGLETONS68);
root_0 = (Object)adaptor.becomeRoot(SINGLETONS68_tree, root_0);
// Fcl.g:191:25: ( points )+
int cnt11=0;
loop11:
do {
int alt11=2;
int LA11_0 = input.LA(1);
if ( (LA11_0==LEFT_PARENTHESIS) ) {
alt11=1;
}
switch (alt11) {
case 1 :
// Fcl.g:191:26: points
{
pushFollow(FOLLOW_points_in_singletons2898);
points69=points();
state._fsp--;
adaptor.addChild(root_0, points69.getTree());
}
break;
default :
if ( cnt11 >= 1 ) break loop11;
EarlyExitException eee =
new EarlyExitException(11, input);
throw eee;
}
cnt11++;
} while (true);
}
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 {
}
return retval;
}
// $ANTLR end "singletons"
public static class trape_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "trape"
// Fcl.g:192:1: trape : TRAPE atom atom atom atom ;
public final FclParser.trape_return trape() throws RecognitionException {
FclParser.trape_return retval = new FclParser.trape_return();
retval.start = input.LT(1);
Object root_0 = null;
Token TRAPE70=null;
FclParser.atom_return atom71 = null;
FclParser.atom_return atom72 = null;
FclParser.atom_return atom73 = null;
FclParser.atom_return atom74 = null;
Object TRAPE70_tree=null;
try {
// Fcl.g:192:6: ( TRAPE atom atom atom atom )
// Fcl.g:192:8: TRAPE atom atom atom atom
{
root_0 = (Object)adaptor.nil();
TRAPE70=(Token)match(input,TRAPE,FOLLOW_TRAPE_in_trape2907);
TRAPE70_tree = (Object)adaptor.create(TRAPE70);
root_0 = (Object)adaptor.becomeRoot(TRAPE70_tree, root_0);
pushFollow(FOLLOW_atom_in_trape2910);
atom71=atom();
state._fsp--;
adaptor.addChild(root_0, atom71.getTree());
pushFollow(FOLLOW_atom_in_trape2912);
atom72=atom();
state._fsp--;
adaptor.addChild(root_0, atom72.getTree());
pushFollow(FOLLOW_atom_in_trape2914);
atom73=atom();
state._fsp--;
adaptor.addChild(root_0, atom73.getTree());
pushFollow(FOLLOW_atom_in_trape2916);
atom74=atom();
state._fsp--;
adaptor.addChild(root_0, atom74.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 {
}
return retval;
}
// $ANTLR end "trape"
public static class trian_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "trian"
// Fcl.g:193:1: trian : TRIAN atom atom atom ;
public final FclParser.trian_return trian() throws RecognitionException {
FclParser.trian_return retval = new FclParser.trian_return();
retval.start = input.LT(1);
Object root_0 = null;
Token TRIAN75=null;
FclParser.atom_return atom76 = null;
FclParser.atom_return atom77 = null;
FclParser.atom_return atom78 = null;
Object TRIAN75_tree=null;
try {
// Fcl.g:193:6: ( TRIAN atom atom atom )
// Fcl.g:193:8: TRIAN atom atom atom
{
root_0 = (Object)adaptor.nil();
TRIAN75=(Token)match(input,TRIAN,FOLLOW_TRIAN_in_trian2922);
TRIAN75_tree = (Object)adaptor.create(TRIAN75);
root_0 = (Object)adaptor.becomeRoot(TRIAN75_tree, root_0);
pushFollow(FOLLOW_atom_in_trian2925);
atom76=atom();
state._fsp--;
adaptor.addChild(root_0, atom76.getTree());
pushFollow(FOLLOW_atom_in_trian2927);
atom77=atom();
state._fsp--;
adaptor.addChild(root_0, atom77.getTree());
pushFollow(FOLLOW_atom_in_trian2929);
atom78=atom();
state._fsp--;
adaptor.addChild(root_0, atom78.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 {
}
return retval;
}
// $ANTLR end "trian"
public static class points_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "points"
// Fcl.g:194:1: points : LEFT_PARENTHESIS x= atom COMMA y= atom RIGHT_PARENTHESIS -> ^( POINT $x $y) ;
public final FclParser.points_return points() throws RecognitionException {
FclParser.points_return retval = new FclParser.points_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LEFT_PARENTHESIS79=null;
Token COMMA80=null;
Token RIGHT_PARENTHESIS81=null;
FclParser.atom_return x = null;
FclParser.atom_return y = null;
Object LEFT_PARENTHESIS79_tree=null;
Object COMMA80_tree=null;
Object RIGHT_PARENTHESIS81_tree=null;
RewriteRuleTokenStream stream_RIGHT_PARENTHESIS=new RewriteRuleTokenStream(adaptor,"token RIGHT_PARENTHESIS");
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleTokenStream stream_LEFT_PARENTHESIS=new RewriteRuleTokenStream(adaptor,"token LEFT_PARENTHESIS");
RewriteRuleSubtreeStream stream_atom=new RewriteRuleSubtreeStream(adaptor,"rule atom");
try {
// Fcl.g:194:8: ( LEFT_PARENTHESIS x= atom COMMA y= atom RIGHT_PARENTHESIS -> ^( POINT $x $y) )
// Fcl.g:194:10: LEFT_PARENTHESIS x= atom COMMA y= atom RIGHT_PARENTHESIS
{
LEFT_PARENTHESIS79=(Token)match(input,LEFT_PARENTHESIS,FOLLOW_LEFT_PARENTHESIS_in_points2936);
stream_LEFT_PARENTHESIS.add(LEFT_PARENTHESIS79);
pushFollow(FOLLOW_atom_in_points2940);
x=atom();
state._fsp--;
stream_atom.add(x.getTree());
COMMA80=(Token)match(input,COMMA,FOLLOW_COMMA_in_points2942);
stream_COMMA.add(COMMA80);
pushFollow(FOLLOW_atom_in_points2946);
y=atom();
state._fsp--;
stream_atom.add(y.getTree());
RIGHT_PARENTHESIS81=(Token)match(input,RIGHT_PARENTHESIS,FOLLOW_RIGHT_PARENTHESIS_in_points2948);
stream_RIGHT_PARENTHESIS.add(RIGHT_PARENTHESIS81);
// AST REWRITE
// elements: x, y
// token labels:
// rule labels: retval, y, x
// token list labels:
// rule list labels:
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
RewriteRuleSubtreeStream stream_y=new RewriteRuleSubtreeStream(adaptor,"token y",y!=null?y.tree:null);
RewriteRuleSubtreeStream stream_x=new RewriteRuleSubtreeStream(adaptor,"token x",x!=null?x.tree:null);
root_0 = (Object)adaptor.nil();
// 194:65: -> ^( POINT $x $y)
{
// Fcl.g:194:68: ^( POINT $x $y)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(POINT, "POINT"), root_1);
adaptor.addChild(root_1, stream_x.nextTree());
adaptor.addChild(root_1, stream_y.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 {
}
return retval;
}
// $ANTLR end "points"
public static class atom_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "atom"
// Fcl.g:195:1: atom : ( real | id );
public final FclParser.atom_return atom() throws RecognitionException {
FclParser.atom_return retval = new FclParser.atom_return();
retval.start = input.LT(1);
Object root_0 = null;
FclParser.real_return real82 = null;
FclParser.id_return id83 = null;
try {
// Fcl.g:195:6: ( real | id )
int alt12=2;
int LA12_0 = input.LA(1);
if ( (LA12_0==REAL) ) {
alt12=1;
}
else if ( (LA12_0==ID) ) {
alt12=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("", 12, 0, input);
throw nvae;
}
switch (alt12) {
case 1 :
// Fcl.g:195:8: real
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_real_in_atom2967);
real82=real();
state._fsp--;
adaptor.addChild(root_0, real82.getTree());
}
break;
case 2 :
// Fcl.g:195:15: id
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_id_in_atom2971);
id83=id();
state._fsp--;
adaptor.addChild(root_0, id83.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 {
}
return retval;
}
// $ANTLR end "atom"
public static class id_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "id"
// Fcl.g:196:1: id : x= ID -> ^( VALUE_ID $x) ;
public final FclParser.id_return id() throws RecognitionException {
FclParser.id_return retval = new FclParser.id_return();
retval.start = input.LT(1);
Object root_0 = null;
Token x=null;
Object x_tree=null;
RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
try {
// Fcl.g:196:5: (x= ID -> ^( VALUE_ID $x) )
// Fcl.g:196:7: x= ID
{
x=(Token)match(input,ID,FOLLOW_ID_in_id2981);
stream_ID.add(x);
// AST REWRITE
// elements: x
// token labels: x
// rule labels: retval
// token list labels:
// rule list labels:
retval.tree = root_0;
RewriteRuleTokenStream stream_x=new RewriteRuleTokenStream(adaptor,"token x",x);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
root_0 = (Object)adaptor.nil();
// 196:13: -> ^( VALUE_ID $x)
{
// Fcl.g:196:16: ^( VALUE_ID $x)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(VALUE_ID, "VALUE_ID"), root_1);
adaptor.addChild(root_1, stream_x.nextNode());
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 {
}
return retval;
}
// $ANTLR end "id"
public static class real_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "real"
// Fcl.g:197:1: real : x= REAL -> ^( VALUE_REAL $x) ;
public final FclParser.real_return real() throws RecognitionException {
FclParser.real_return retval = new FclParser.real_return();
retval.start = input.LT(1);
Object root_0 = null;
Token x=null;
Object x_tree=null;
RewriteRuleTokenStream stream_REAL=new RewriteRuleTokenStream(adaptor,"token REAL");
try {
// Fcl.g:197:6: (x= REAL -> ^( VALUE_REAL $x) )
// Fcl.g:197:9: x= REAL
{
x=(Token)match(input,REAL,FOLLOW_REAL_in_real3001);
stream_REAL.add(x);
// AST REWRITE
// elements: x
// token labels: x
// rule labels: retval
// token list labels:
// rule list labels:
retval.tree = root_0;
RewriteRuleTokenStream stream_x=new RewriteRuleTokenStream(adaptor,"token x",x);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
root_0 = (Object)adaptor.nil();
// 197:17: -> ^( VALUE_REAL $x)
{
// Fcl.g:197:20: ^( VALUE_REAL $x)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(VALUE_REAL, "VALUE_REAL"), root_1);
adaptor.addChild(root_1, stream_x.nextNode());
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 {
}
return retval;
}
// $ANTLR end "real"
public static class function_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "function"
// Fcl.g:200:1: function : FUNCTION fun_pm ;
public final FclParser.function_return function() throws RecognitionException {
FclParser.function_return retval = new FclParser.function_return();
retval.start = input.LT(1);
Object root_0 = null;
Token FUNCTION84=null;
FclParser.fun_pm_return fun_pm85 = null;
Object FUNCTION84_tree=null;
try {
// Fcl.g:200:9: ( FUNCTION fun_pm )
// Fcl.g:200:11: FUNCTION fun_pm
{
root_0 = (Object)adaptor.nil();
FUNCTION84=(Token)match(input,FUNCTION,FOLLOW_FUNCTION_in_function3019);
FUNCTION84_tree = (Object)adaptor.create(FUNCTION84);
root_0 = (Object)adaptor.becomeRoot(FUNCTION84_tree, root_0);
pushFollow(FOLLOW_fun_pm_in_function3022);
fun_pm85=fun_pm();
state._fsp--;
adaptor.addChild(root_0, fun_pm85.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 {
}
return retval;
}
// $ANTLR end "function"
public static class fun_pm_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "fun_pm"
// Fcl.g:201:1: fun_pm : fun_md ( ( PLUS | MINUS ) fun_md )* ;
public final FclParser.fun_pm_return fun_pm() throws RecognitionException {
FclParser.fun_pm_return retval = new FclParser.fun_pm_return();
retval.start = input.LT(1);
Object root_0 = null;
Token PLUS87=null;
Token MINUS88=null;
FclParser.fun_md_return fun_md86 = null;
FclParser.fun_md_return fun_md89 = null;
Object PLUS87_tree=null;
Object MINUS88_tree=null;
try {
// Fcl.g:201:7: ( fun_md ( ( PLUS | MINUS ) fun_md )* )
// Fcl.g:201:9: fun_md ( ( PLUS | MINUS ) fun_md )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_fun_md_in_fun_pm3028);
fun_md86=fun_md();
state._fsp--;
adaptor.addChild(root_0, fun_md86.getTree());
// Fcl.g:201:16: ( ( PLUS | MINUS ) fun_md )*
loop14:
do {
int alt14=2;
int LA14_0 = input.LA(1);
if ( (LA14_0==MINUS||LA14_0==PLUS) ) {
alt14=1;
}
switch (alt14) {
case 1 :
// Fcl.g:201:17: ( PLUS | MINUS ) fun_md
{
// Fcl.g:201:17: ( PLUS | MINUS )
int alt13=2;
int LA13_0 = input.LA(1);
if ( (LA13_0==PLUS) ) {
alt13=1;
}
else if ( (LA13_0==MINUS) ) {
alt13=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("", 13, 0, input);
throw nvae;
}
switch (alt13) {
case 1 :
// Fcl.g:201:18: PLUS
{
PLUS87=(Token)match(input,PLUS,FOLLOW_PLUS_in_fun_pm3032);
PLUS87_tree = (Object)adaptor.create(PLUS87);
root_0 = (Object)adaptor.becomeRoot(PLUS87_tree, root_0);
}
break;
case 2 :
// Fcl.g:201:26: MINUS
{
MINUS88=(Token)match(input,MINUS,FOLLOW_MINUS_in_fun_pm3037);
MINUS88_tree = (Object)adaptor.create(MINUS88);
root_0 = (Object)adaptor.becomeRoot(MINUS88_tree, root_0);
}
break;
}
pushFollow(FOLLOW_fun_md_in_fun_pm3042);
fun_md89=fun_md();
state._fsp--;
adaptor.addChild(root_0, fun_md89.getTree());
}
break;
default :
break loop14;
}
} while (true);
}
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 {
}
return retval;
}
// $ANTLR end "fun_pm"
public static class fun_md_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "fun_md"
// Fcl.g:202:1: fun_md : fun_mp ( ( STAR | SLASH ) fun_mp )* ;
public final FclParser.fun_md_return fun_md() throws RecognitionException {
FclParser.fun_md_return retval = new FclParser.fun_md_return();
retval.start = input.LT(1);
Object root_0 = null;
Token STAR91=null;
Token SLASH92=null;
FclParser.fun_mp_return fun_mp90 = null;
FclParser.fun_mp_return fun_mp93 = null;
Object STAR91_tree=null;
Object SLASH92_tree=null;
try {
// Fcl.g:202:7: ( fun_mp ( ( STAR | SLASH ) fun_mp )* )
// Fcl.g:202:9: fun_mp ( ( STAR | SLASH ) fun_mp )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_fun_mp_in_fun_md3055);
fun_mp90=fun_mp();
state._fsp--;
adaptor.addChild(root_0, fun_mp90.getTree());
// Fcl.g:202:16: ( ( STAR | SLASH ) fun_mp )*
loop16:
do {
int alt16=2;
int LA16_0 = input.LA(1);
if ( ((LA16_0>=SLASH && LA16_0<=STAR)) ) {
alt16=1;
}
switch (alt16) {
case 1 :
// Fcl.g:202:17: ( STAR | SLASH ) fun_mp
{
// Fcl.g:202:17: ( STAR | SLASH )
int alt15=2;
int LA15_0 = input.LA(1);
if ( (LA15_0==STAR) ) {
alt15=1;
}
else if ( (LA15_0==SLASH) ) {
alt15=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("", 15, 0, input);
throw nvae;
}
switch (alt15) {
case 1 :
// Fcl.g:202:18: STAR
{
STAR91=(Token)match(input,STAR,FOLLOW_STAR_in_fun_md3059);
STAR91_tree = (Object)adaptor.create(STAR91);
root_0 = (Object)adaptor.becomeRoot(STAR91_tree, root_0);
}
break;
case 2 :
// Fcl.g:202:26: SLASH
{
SLASH92=(Token)match(input,SLASH,FOLLOW_SLASH_in_fun_md3064);
SLASH92_tree = (Object)adaptor.create(SLASH92);
root_0 = (Object)adaptor.becomeRoot(SLASH92_tree, root_0);
}
break;
}
pushFollow(FOLLOW_fun_mp_in_fun_md3068);
fun_mp93=fun_mp();
state._fsp--;
adaptor.addChild(root_0, fun_mp93.getTree());
}
break;
default :
break loop16;
}
} while (true);
}
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 {
}
return retval;
}
// $ANTLR end "fun_md"
public static class fun_mp_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "fun_mp"
// Fcl.g:203:1: fun_mp : fun_atom ( ( HAT | PERCENT ) fun_atom )* ;
public final FclParser.fun_mp_return fun_mp() throws RecognitionException {
FclParser.fun_mp_return retval = new FclParser.fun_mp_return();
retval.start = input.LT(1);
Object root_0 = null;
Token HAT95=null;
Token PERCENT96=null;
FclParser.fun_atom_return fun_atom94 = null;
FclParser.fun_atom_return fun_atom97 = null;
Object HAT95_tree=null;
Object PERCENT96_tree=null;
try {
// Fcl.g:203:8: ( fun_atom ( ( HAT | PERCENT ) fun_atom )* )
// Fcl.g:203:10: fun_atom ( ( HAT | PERCENT ) fun_atom )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_fun_atom_in_fun_mp3082);
fun_atom94=fun_atom();
state._fsp--;
adaptor.addChild(root_0, fun_atom94.getTree());
// Fcl.g:203:19: ( ( HAT | PERCENT ) fun_atom )*
loop18:
do {
int alt18=2;
int LA18_0 = input.LA(1);
if ( (LA18_0==HAT||LA18_0==PERCENT) ) {
alt18=1;
}
switch (alt18) {
case 1 :
// Fcl.g:203:20: ( HAT | PERCENT ) fun_atom
{
// Fcl.g:203:20: ( HAT | PERCENT )
int alt17=2;
int LA17_0 = input.LA(1);
if ( (LA17_0==HAT) ) {
alt17=1;
}
else if ( (LA17_0==PERCENT) ) {
alt17=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("", 17, 0, input);
throw nvae;
}
switch (alt17) {
case 1 :
// Fcl.g:203:21: HAT
{
HAT95=(Token)match(input,HAT,FOLLOW_HAT_in_fun_mp3086);
HAT95_tree = (Object)adaptor.create(HAT95);
root_0 = (Object)adaptor.becomeRoot(HAT95_tree, root_0);
}
break;
case 2 :
// Fcl.g:203:28: PERCENT
{
PERCENT96=(Token)match(input,PERCENT,FOLLOW_PERCENT_in_fun_mp3091);
PERCENT96_tree = (Object)adaptor.create(PERCENT96);
root_0 = (Object)adaptor.becomeRoot(PERCENT96_tree, root_0);
}
break;
}
pushFollow(FOLLOW_fun_atom_in_fun_mp3095);
fun_atom97=fun_atom();
state._fsp--;
adaptor.addChild(root_0, fun_atom97.getTree());
}
break;
default :
break loop18;
}
} while (true);
}
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 {
}
return retval;
}
// $ANTLR end "fun_mp"
public static class fun_atom_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "fun_atom"
// Fcl.g:204:1: fun_atom : ( atom | ( EXP | LN | LOG | SIN | COS | TAN | ABS )? LEFT_PARENTHESIS fun_pm RIGHT_PARENTHESIS );
public final FclParser.fun_atom_return fun_atom() throws RecognitionException {
FclParser.fun_atom_return retval = new FclParser.fun_atom_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXP99=null;
Token LN100=null;
Token LOG101=null;
Token SIN102=null;
Token COS103=null;
Token TAN104=null;
Token ABS105=null;
Token LEFT_PARENTHESIS106=null;
Token RIGHT_PARENTHESIS108=null;
FclParser.atom_return atom98 = null;
FclParser.fun_pm_return fun_pm107 = null;
Object EXP99_tree=null;
Object LN100_tree=null;
Object LOG101_tree=null;
Object SIN102_tree=null;
Object COS103_tree=null;
Object TAN104_tree=null;
Object ABS105_tree=null;
Object LEFT_PARENTHESIS106_tree=null;
Object RIGHT_PARENTHESIS108_tree=null;
try {
// Fcl.g:204:10: ( atom | ( EXP | LN | LOG | SIN | COS | TAN | ABS )? LEFT_PARENTHESIS fun_pm RIGHT_PARENTHESIS )
int alt20=2;
int LA20_0 = input.LA(1);
if ( (LA20_0==REAL||LA20_0==ID) ) {
alt20=1;
}
else if ( (LA20_0==ABS||LA20_0==COS||LA20_0==EXP||(LA20_0>=LN && LA20_0<=LOG)||LA20_0==SIN||LA20_0==TAN||LA20_0==LEFT_PARENTHESIS) ) {
alt20=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("", 20, 0, input);
throw nvae;
}
switch (alt20) {
case 1 :
// Fcl.g:204:12: atom
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_atom_in_fun_atom3109);
atom98=atom();
state._fsp--;
adaptor.addChild(root_0, atom98.getTree());
}
break;
case 2 :
// Fcl.g:204:19: ( EXP | LN | LOG | SIN | COS | TAN | ABS )? LEFT_PARENTHESIS fun_pm RIGHT_PARENTHESIS
{
root_0 = (Object)adaptor.nil();
// Fcl.g:204:19: ( EXP | LN | LOG | SIN | COS | TAN | ABS )?
int alt19=8;
switch ( input.LA(1) ) {
case EXP:
{
alt19=1;
}
break;
case LN:
{
alt19=2;
}
break;
case LOG:
{
alt19=3;
}
break;
case SIN:
{
alt19=4;
}
break;
case COS:
{
alt19=5;
}
break;
case TAN:
{
alt19=6;
}
break;
case ABS:
{
alt19=7;
}
break;
}
switch (alt19) {
case 1 :
// Fcl.g:204:20: EXP
{
EXP99=(Token)match(input,EXP,FOLLOW_EXP_in_fun_atom3114);
EXP99_tree = (Object)adaptor.create(EXP99);
root_0 = (Object)adaptor.becomeRoot(EXP99_tree, root_0);
}
break;
case 2 :
// Fcl.g:204:25: LN
{
LN100=(Token)match(input,LN,FOLLOW_LN_in_fun_atom3117);
LN100_tree = (Object)adaptor.create(LN100);
root_0 = (Object)adaptor.becomeRoot(LN100_tree, root_0);
}
break;
case 3 :
// Fcl.g:204:29: LOG
{
LOG101=(Token)match(input,LOG,FOLLOW_LOG_in_fun_atom3120);
LOG101_tree = (Object)adaptor.create(LOG101);
root_0 = (Object)adaptor.becomeRoot(LOG101_tree, root_0);
}
break;
case 4 :
// Fcl.g:204:34: SIN
{
SIN102=(Token)match(input,SIN,FOLLOW_SIN_in_fun_atom3123);
SIN102_tree = (Object)adaptor.create(SIN102);
root_0 = (Object)adaptor.becomeRoot(SIN102_tree, root_0);
}
break;
case 5 :
// Fcl.g:204:39: COS
{
COS103=(Token)match(input,COS,FOLLOW_COS_in_fun_atom3126);
COS103_tree = (Object)adaptor.create(COS103);
root_0 = (Object)adaptor.becomeRoot(COS103_tree, root_0);
}
break;
case 6 :
// Fcl.g:204:44: TAN
{
TAN104=(Token)match(input,TAN,FOLLOW_TAN_in_fun_atom3129);
TAN104_tree = (Object)adaptor.create(TAN104);
root_0 = (Object)adaptor.becomeRoot(TAN104_tree, root_0);
}
break;
case 7 :
// Fcl.g:204:49: ABS
{
ABS105=(Token)match(input,ABS,FOLLOW_ABS_in_fun_atom3132);
ABS105_tree = (Object)adaptor.create(ABS105);
root_0 = (Object)adaptor.becomeRoot(ABS105_tree, root_0);
}
break;
}
LEFT_PARENTHESIS106=(Token)match(input,LEFT_PARENTHESIS,FOLLOW_LEFT_PARENTHESIS_in_fun_atom3137);
pushFollow(FOLLOW_fun_pm_in_fun_atom3140);
fun_pm107=fun_pm();
state._fsp--;
adaptor.addChild(root_0, fun_pm107.getTree());
RIGHT_PARENTHESIS108=(Token)match(input,RIGHT_PARENTHESIS,FOLLOW_RIGHT_PARENTHESIS_in_fun_atom3142);
}
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 {
}
return retval;
}
// $ANTLR end "fun_atom"
public static class defuzzify_block_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "defuzzify_block"
// Fcl.g:207:1: defuzzify_block : DEFUZZIFY ID ( defuzzify_item )* END_DEFUZZIFY ;
public final FclParser.defuzzify_block_return defuzzify_block() throws RecognitionException {
FclParser.defuzzify_block_return retval = new FclParser.defuzzify_block_return();
retval.start = input.LT(1);
Object root_0 = null;
Token DEFUZZIFY109=null;
Token ID110=null;
Token END_DEFUZZIFY112=null;
FclParser.defuzzify_item_return defuzzify_item111 = null;
Object DEFUZZIFY109_tree=null;
Object ID110_tree=null;
Object END_DEFUZZIFY112_tree=null;
try {
// Fcl.g:207:17: ( DEFUZZIFY ID ( defuzzify_item )* END_DEFUZZIFY )
// Fcl.g:207:19: DEFUZZIFY ID ( defuzzify_item )* END_DEFUZZIFY
{
root_0 = (Object)adaptor.nil();
DEFUZZIFY109=(Token)match(input,DEFUZZIFY,FOLLOW_DEFUZZIFY_in_defuzzify_block3153);
DEFUZZIFY109_tree = (Object)adaptor.create(DEFUZZIFY109);
root_0 = (Object)adaptor.becomeRoot(DEFUZZIFY109_tree, root_0);
ID110=(Token)match(input,ID,FOLLOW_ID_in_defuzzify_block3156);
ID110_tree = (Object)adaptor.create(ID110);
adaptor.addChild(root_0, ID110_tree);
// Fcl.g:207:33: ( defuzzify_item )*
loop21:
do {
int alt21=2;
int LA21_0 = input.LA(1);
if ( (LA21_0==DEFAULT||LA21_0==METHOD||LA21_0==RANGE||LA21_0==TERM) ) {
alt21=1;
}
switch (alt21) {
case 1 :
// Fcl.g:207:34: defuzzify_item
{
pushFollow(FOLLOW_defuzzify_item_in_defuzzify_block3159);
defuzzify_item111=defuzzify_item();
state._fsp--;
adaptor.addChild(root_0, defuzzify_item111.getTree());
}
break;
default :
break loop21;
}
} while (true);
END_DEFUZZIFY112=(Token)match(input,END_DEFUZZIFY,FOLLOW_END_DEFUZZIFY_in_defuzzify_block3163);
}
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 {
}
return retval;
}
// $ANTLR end "defuzzify_block"
public static class defuzzify_item_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "defuzzify_item"
// Fcl.g:208:1: defuzzify_item : ( defuzzification_method | default_value | linguistic_term | range );
public final FclParser.defuzzify_item_return defuzzify_item() throws RecognitionException {
FclParser.defuzzify_item_return retval = new FclParser.defuzzify_item_return();
retval.start = input.LT(1);
Object root_0 = null;
FclParser.defuzzification_method_return defuzzification_method113 = null;
FclParser.default_value_return default_value114 = null;
FclParser.linguistic_term_return linguistic_term115 = null;
FclParser.range_return range116 = null;
try {
// Fcl.g:208:16: ( defuzzification_method | default_value | linguistic_term | range )
int alt22=4;
switch ( input.LA(1) ) {
case METHOD:
{
alt22=1;
}
break;
case DEFAULT:
{
alt22=2;
}
break;
case TERM:
{
alt22=3;
}
break;
case RANGE:
{
alt22=4;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 22, 0, input);
throw nvae;
}
switch (alt22) {
case 1 :
// Fcl.g:208:18: defuzzification_method
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_defuzzification_method_in_defuzzify_item3171);
defuzzification_method113=defuzzification_method();
state._fsp--;
adaptor.addChild(root_0, defuzzification_method113.getTree());
}
break;
case 2 :
// Fcl.g:208:43: default_value
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_default_value_in_defuzzify_item3175);
default_value114=default_value();
state._fsp--;
adaptor.addChild(root_0, default_value114.getTree());
}
break;
case 3 :
// Fcl.g:208:59: linguistic_term
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_linguistic_term_in_defuzzify_item3179);
linguistic_term115=linguistic_term();
state._fsp--;
adaptor.addChild(root_0, linguistic_term115.getTree());
}
break;
case 4 :
// Fcl.g:208:77: range
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_range_in_defuzzify_item3183);
range116=range();
state._fsp--;
adaptor.addChild(root_0, range116.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 {
}
return retval;
}
// $ANTLR end "defuzzify_item"
public static class range_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "range"
// Fcl.g:209:1: range : RANGE ASSIGN_OPERATOR LEFT_PARENTHESIS REAL DOTS REAL RIGHT_PARENTHESIS SEMICOLON ;
public final FclParser.range_return range() throws RecognitionException {
FclParser.range_return retval = new FclParser.range_return();
retval.start = input.LT(1);
Object root_0 = null;
Token RANGE117=null;
Token ASSIGN_OPERATOR118=null;
Token LEFT_PARENTHESIS119=null;
Token REAL120=null;
Token DOTS121=null;
Token REAL122=null;
Token RIGHT_PARENTHESIS123=null;
Token SEMICOLON124=null;
Object RANGE117_tree=null;
Object ASSIGN_OPERATOR118_tree=null;
Object LEFT_PARENTHESIS119_tree=null;
Object REAL120_tree=null;
Object DOTS121_tree=null;
Object REAL122_tree=null;
Object RIGHT_PARENTHESIS123_tree=null;
Object SEMICOLON124_tree=null;
try {
// Fcl.g:209:7: ( RANGE ASSIGN_OPERATOR LEFT_PARENTHESIS REAL DOTS REAL RIGHT_PARENTHESIS SEMICOLON )
// Fcl.g:209:9: RANGE ASSIGN_OPERATOR LEFT_PARENTHESIS REAL DOTS REAL RIGHT_PARENTHESIS SEMICOLON
{
root_0 = (Object)adaptor.nil();
RANGE117=(Token)match(input,RANGE,FOLLOW_RANGE_in_range3190);
RANGE117_tree = (Object)adaptor.create(RANGE117);
root_0 = (Object)adaptor.becomeRoot(RANGE117_tree, root_0);
ASSIGN_OPERATOR118=(Token)match(input,ASSIGN_OPERATOR,FOLLOW_ASSIGN_OPERATOR_in_range3193);
LEFT_PARENTHESIS119=(Token)match(input,LEFT_PARENTHESIS,FOLLOW_LEFT_PARENTHESIS_in_range3196);
REAL120=(Token)match(input,REAL,FOLLOW_REAL_in_range3199);
REAL120_tree = (Object)adaptor.create(REAL120);
adaptor.addChild(root_0, REAL120_tree);
DOTS121=(Token)match(input,DOTS,FOLLOW_DOTS_in_range3201);
REAL122=(Token)match(input,REAL,FOLLOW_REAL_in_range3204);
REAL122_tree = (Object)adaptor.create(REAL122);
adaptor.addChild(root_0, REAL122_tree);
RIGHT_PARENTHESIS123=(Token)match(input,RIGHT_PARENTHESIS,FOLLOW_RIGHT_PARENTHESIS_in_range3206);
SEMICOLON124=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_range3209);
}
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 {
}
return retval;
}
// $ANTLR end "range"
public static class defuzzification_method_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "defuzzification_method"
// Fcl.g:210:1: defuzzification_method : METHOD COLON ( COG | COGS | COGF | COA | LM | RM | MM ) SEMICOLON ;
public final FclParser.defuzzification_method_return defuzzification_method() throws RecognitionException {
FclParser.defuzzification_method_return retval = new FclParser.defuzzification_method_return();
retval.start = input.LT(1);
Object root_0 = null;
Token METHOD125=null;
Token COLON126=null;
Token set127=null;
Token SEMICOLON128=null;
Object METHOD125_tree=null;
Object COLON126_tree=null;
Object set127_tree=null;
Object SEMICOLON128_tree=null;
try {
// Fcl.g:210:24: ( METHOD COLON ( COG | COGS | COGF | COA | LM | RM | MM ) SEMICOLON )
// Fcl.g:210:26: METHOD COLON ( COG | COGS | COGF | COA | LM | RM | MM ) SEMICOLON
{
root_0 = (Object)adaptor.nil();
METHOD125=(Token)match(input,METHOD,FOLLOW_METHOD_in_defuzzification_method3217);
METHOD125_tree = (Object)adaptor.create(METHOD125);
root_0 = (Object)adaptor.becomeRoot(METHOD125_tree, root_0);
COLON126=(Token)match(input,COLON,FOLLOW_COLON_in_defuzzification_method3220);
set127=(Token)input.LT(1);
if ( input.LA(1)==COA||(input.LA(1)>=COG && input.LA(1)<=COGF)||input.LA(1)==LM||input.LA(1)==MM||input.LA(1)==RM ) {
input.consume();
adaptor.addChild(root_0, (Object)adaptor.create(set127));
state.errorRecovery=false;
}
else {
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
SEMICOLON128=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_defuzzification_method3239);
}
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 {
}
return retval;
}
// $ANTLR end "defuzzification_method"
public static class default_value_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "default_value"
// Fcl.g:211:1: default_value : DEFAULT ASSIGN_OPERATOR ( REAL | NC ) SEMICOLON ;
public final FclParser.default_value_return default_value() throws RecognitionException {
FclParser.default_value_return retval = new FclParser.default_value_return();
retval.start = input.LT(1);
Object root_0 = null;
Token DEFAULT129=null;
Token ASSIGN_OPERATOR130=null;
Token set131=null;
Token SEMICOLON132=null;
Object DEFAULT129_tree=null;
Object ASSIGN_OPERATOR130_tree=null;
Object set131_tree=null;
Object SEMICOLON132_tree=null;
try {
// Fcl.g:211:15: ( DEFAULT ASSIGN_OPERATOR ( REAL | NC ) SEMICOLON )
// Fcl.g:211:17: DEFAULT ASSIGN_OPERATOR ( REAL | NC ) SEMICOLON
{
root_0 = (Object)adaptor.nil();
DEFAULT129=(Token)match(input,DEFAULT,FOLLOW_DEFAULT_in_default_value3247);
DEFAULT129_tree = (Object)adaptor.create(DEFAULT129);
root_0 = (Object)adaptor.becomeRoot(DEFAULT129_tree, root_0);
ASSIGN_OPERATOR130=(Token)match(input,ASSIGN_OPERATOR,FOLLOW_ASSIGN_OPERATOR_in_default_value3250);
set131=(Token)input.LT(1);
if ( input.LA(1)==NC||input.LA(1)==REAL ) {
input.consume();
adaptor.addChild(root_0, (Object)adaptor.create(set131));
state.errorRecovery=false;
}
else {
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
SEMICOLON132=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_default_value3261);
}
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 {
}
return retval;
}
// $ANTLR end "default_value"
public static class rule_block_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "rule_block"
// Fcl.g:214:1: rule_block : RULEBLOCK ID ( rule_item )* END_RULEBLOCK ;
public final FclParser.rule_block_return rule_block() throws RecognitionException {
FclParser.rule_block_return retval = new FclParser.rule_block_return();
retval.start = input.LT(1);
Object root_0 = null;
Token RULEBLOCK133=null;
Token ID134=null;
Token END_RULEBLOCK136=null;
FclParser.rule_item_return rule_item135 = null;
Object RULEBLOCK133_tree=null;
Object ID134_tree=null;
Object END_RULEBLOCK136_tree=null;
try {
// Fcl.g:214:12: ( RULEBLOCK ID ( rule_item )* END_RULEBLOCK )
// Fcl.g:214:14: RULEBLOCK ID ( rule_item )* END_RULEBLOCK
{
root_0 = (Object)adaptor.nil();
RULEBLOCK133=(Token)match(input,RULEBLOCK,FOLLOW_RULEBLOCK_in_rule_block3271);
RULEBLOCK133_tree = (Object)adaptor.create(RULEBLOCK133);
root_0 = (Object)adaptor.becomeRoot(RULEBLOCK133_tree, root_0);
ID134=(Token)match(input,ID,FOLLOW_ID_in_rule_block3274);
ID134_tree = (Object)adaptor.create(ID134);
adaptor.addChild(root_0, ID134_tree);
// Fcl.g:214:28: ( rule_item )*
loop23:
do {
int alt23=2;
int LA23_0 = input.LA(1);
if ( ((LA23_0>=ACCU && LA23_0<=AND)||LA23_0==OR||LA23_0==RULE) ) {
alt23=1;
}
switch (alt23) {
case 1 :
// Fcl.g:214:29: rule_item
{
pushFollow(FOLLOW_rule_item_in_rule_block3277);
rule_item135=rule_item();
state._fsp--;
adaptor.addChild(root_0, rule_item135.getTree());
}
break;
default :
break loop23;
}
} while (true);
END_RULEBLOCK136=(Token)match(input,END_RULEBLOCK,FOLLOW_END_RULEBLOCK_in_rule_block3281);
}
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 {
}
return retval;
}
// $ANTLR end "rule_block"
public static class rule_item_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "rule_item"
// Fcl.g:215:1: rule_item : ( operator_definition | activation_method | accumulation_method | rule );
public final FclParser.rule_item_return rule_item() throws RecognitionException {
FclParser.rule_item_return retval = new FclParser.rule_item_return();
retval.start = input.LT(1);
Object root_0 = null;
FclParser.operator_definition_return operator_definition137 = null;
FclParser.activation_method_return activation_method138 = null;
FclParser.accumulation_method_return accumulation_method139 = null;
FclParser.rule_return rule140 = null;
try {
// Fcl.g:215:11: ( operator_definition | activation_method | accumulation_method | rule )
int alt24=4;
switch ( input.LA(1) ) {
case AND:
case OR:
{
alt24=1;
}
break;
case ACT:
{
alt24=2;
}
break;
case ACCU:
{
alt24=3;
}
break;
case RULE:
{
alt24=4;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 24, 0, input);
throw nvae;
}
switch (alt24) {
case 1 :
// Fcl.g:215:13: operator_definition
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_operator_definition_in_rule_item3289);
operator_definition137=operator_definition();
state._fsp--;
adaptor.addChild(root_0, operator_definition137.getTree());
}
break;
case 2 :
// Fcl.g:215:35: activation_method
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_activation_method_in_rule_item3293);
activation_method138=activation_method();
state._fsp--;
adaptor.addChild(root_0, activation_method138.getTree());
}
break;
case 3 :
// Fcl.g:215:55: accumulation_method
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_accumulation_method_in_rule_item3297);
accumulation_method139=accumulation_method();
state._fsp--;
adaptor.addChild(root_0, accumulation_method139.getTree());
}
break;
case 4 :
// Fcl.g:215:77: rule
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_rule_in_rule_item3301);
rule140=rule();
state._fsp--;
adaptor.addChild(root_0, rule140.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 {
}
return retval;
}
// $ANTLR end "rule_item"
public static class operator_definition_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "operator_definition"
// Fcl.g:216:1: operator_definition : ( operator_definition_or | operator_definition_and );
public final FclParser.operator_definition_return operator_definition() throws RecognitionException {
FclParser.operator_definition_return retval = new FclParser.operator_definition_return();
retval.start = input.LT(1);
Object root_0 = null;
FclParser.operator_definition_or_return operator_definition_or141 = null;
FclParser.operator_definition_and_return operator_definition_and142 = null;
try {
// Fcl.g:216:21: ( operator_definition_or | operator_definition_and )
int alt25=2;
int LA25_0 = input.LA(1);
if ( (LA25_0==OR) ) {
alt25=1;
}
else if ( (LA25_0==AND) ) {
alt25=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("", 25, 0, input);
throw nvae;
}
switch (alt25) {
case 1 :
// Fcl.g:216:23: operator_definition_or
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_operator_definition_or_in_operator_definition3308);
operator_definition_or141=operator_definition_or();
state._fsp--;
adaptor.addChild(root_0, operator_definition_or141.getTree());
}
break;
case 2 :
// Fcl.g:216:48: operator_definition_and
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_operator_definition_and_in_operator_definition3312);
operator_definition_and142=operator_definition_and();
state._fsp--;
adaptor.addChild(root_0, operator_definition_and142.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 {
}
return retval;
}
// $ANTLR end "operator_definition"
public static class operator_definition_or_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "operator_definition_or"
// Fcl.g:217:1: operator_definition_or : OR COLON ( MAX | ASUM | BSUM | DMAX | NIPMAX | EINSTEIN ) SEMICOLON ;
public final FclParser.operator_definition_or_return operator_definition_or() throws RecognitionException {
FclParser.operator_definition_or_return retval = new FclParser.operator_definition_or_return();
retval.start = input.LT(1);
Object root_0 = null;
Token OR143=null;
Token COLON144=null;
Token set145=null;
Token SEMICOLON146=null;
Object OR143_tree=null;
Object COLON144_tree=null;
Object set145_tree=null;
Object SEMICOLON146_tree=null;
try {
// Fcl.g:217:24: ( OR COLON ( MAX | ASUM | BSUM | DMAX | NIPMAX | EINSTEIN ) SEMICOLON )
// Fcl.g:217:26: OR COLON ( MAX | ASUM | BSUM | DMAX | NIPMAX | EINSTEIN ) SEMICOLON
{
root_0 = (Object)adaptor.nil();
OR143=(Token)match(input,OR,FOLLOW_OR_in_operator_definition_or3319);
OR143_tree = (Object)adaptor.create(OR143);
root_0 = (Object)adaptor.becomeRoot(OR143_tree, root_0);
COLON144=(Token)match(input,COLON,FOLLOW_COLON_in_operator_definition_or3322);
set145=(Token)input.LT(1);
if ( input.LA(1)==ASUM||input.LA(1)==BSUM||input.LA(1)==DMAX||input.LA(1)==EINSTEIN||input.LA(1)==MAX||input.LA(1)==NIPMAX ) {
input.consume();
adaptor.addChild(root_0, (Object)adaptor.create(set145));
state.errorRecovery=false;
}
else {
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
SEMICOLON146=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_operator_definition_or3339);
}
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 {
}
return retval;
}
// $ANTLR end "operator_definition_or"
public static class operator_definition_and_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "operator_definition_and"
// Fcl.g:218:1: operator_definition_and : AND COLON ( MIN | PROD | BDIF | DMIN | NIPMIN | HAMACHER ) SEMICOLON ;
public final FclParser.operator_definition_and_return operator_definition_and() throws RecognitionException {
FclParser.operator_definition_and_return retval = new FclParser.operator_definition_and_return();
retval.start = input.LT(1);
Object root_0 = null;
Token AND147=null;
Token COLON148=null;
Token set149=null;
Token SEMICOLON150=null;
Object AND147_tree=null;
Object COLON148_tree=null;
Object set149_tree=null;
Object SEMICOLON150_tree=null;
try {
// Fcl.g:218:25: ( AND COLON ( MIN | PROD | BDIF | DMIN | NIPMIN | HAMACHER ) SEMICOLON )
// Fcl.g:218:27: AND COLON ( MIN | PROD | BDIF | DMIN | NIPMIN | HAMACHER ) SEMICOLON
{
root_0 = (Object)adaptor.nil();
AND147=(Token)match(input,AND,FOLLOW_AND_in_operator_definition_and3347);
AND147_tree = (Object)adaptor.create(AND147);
root_0 = (Object)adaptor.becomeRoot(AND147_tree, root_0);
COLON148=(Token)match(input,COLON,FOLLOW_COLON_in_operator_definition_and3350);
set149=(Token)input.LT(1);
if ( input.LA(1)==BDIF||input.LA(1)==DMIN||input.LA(1)==HAMACHER||(input.LA(1)>=MIN && input.LA(1)<=NIPMIN)||input.LA(1)==PROD ) {
input.consume();
adaptor.addChild(root_0, (Object)adaptor.create(set149));
state.errorRecovery=false;
}
else {
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
SEMICOLON150=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_operator_definition_and3367);
}
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 {
}
return retval;
}
// $ANTLR end "operator_definition_and"
public static class activation_method_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "activation_method"
// Fcl.g:219:1: activation_method : ACT COLON ( PROD | MIN ) SEMICOLON ;
public final FclParser.activation_method_return activation_method() throws RecognitionException {
FclParser.activation_method_return retval = new FclParser.activation_method_return();
retval.start = input.LT(1);
Object root_0 = null;
Token ACT151=null;
Token COLON152=null;
Token set153=null;
Token SEMICOLON154=null;
Object ACT151_tree=null;
Object COLON152_tree=null;
Object set153_tree=null;
Object SEMICOLON154_tree=null;
try {
// Fcl.g:219:19: ( ACT COLON ( PROD | MIN ) SEMICOLON )
// Fcl.g:219:21: ACT COLON ( PROD | MIN ) SEMICOLON
{
root_0 = (Object)adaptor.nil();
ACT151=(Token)match(input,ACT,FOLLOW_ACT_in_activation_method3375);
ACT151_tree = (Object)adaptor.create(ACT151);
root_0 = (Object)adaptor.becomeRoot(ACT151_tree, root_0);
COLON152=(Token)match(input,COLON,FOLLOW_COLON_in_activation_method3378);
set153=(Token)input.LT(1);
if ( input.LA(1)==MIN||input.LA(1)==PROD ) {
input.consume();
adaptor.addChild(root_0, (Object)adaptor.create(set153));
state.errorRecovery=false;
}
else {
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
SEMICOLON154=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_activation_method3387);
}
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 {
}
return retval;
}
// $ANTLR end "activation_method"
public static class accumulation_method_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "accumulation_method"
// Fcl.g:220:1: accumulation_method : ACCU COLON ( MAX | BSUM | NSUM | PROBOR | SUM ) SEMICOLON ;
public final FclParser.accumulation_method_return accumulation_method() throws RecognitionException {
FclParser.accumulation_method_return retval = new FclParser.accumulation_method_return();
retval.start = input.LT(1);
Object root_0 = null;
Token ACCU155=null;
Token COLON156=null;
Token set157=null;
Token SEMICOLON158=null;
Object ACCU155_tree=null;
Object COLON156_tree=null;
Object set157_tree=null;
Object SEMICOLON158_tree=null;
try {
// Fcl.g:220:21: ( ACCU COLON ( MAX | BSUM | NSUM | PROBOR | SUM ) SEMICOLON )
// Fcl.g:220:23: ACCU COLON ( MAX | BSUM | NSUM | PROBOR | SUM ) SEMICOLON
{
root_0 = (Object)adaptor.nil();
ACCU155=(Token)match(input,ACCU,FOLLOW_ACCU_in_accumulation_method3395);
ACCU155_tree = (Object)adaptor.create(ACCU155);
root_0 = (Object)adaptor.becomeRoot(ACCU155_tree, root_0);
COLON156=(Token)match(input,COLON,FOLLOW_COLON_in_accumulation_method3398);
set157=(Token)input.LT(1);
if ( input.LA(1)==BSUM||input.LA(1)==MAX||input.LA(1)==NSUM||input.LA(1)==PROBOR||input.LA(1)==SUM ) {
input.consume();
adaptor.addChild(root_0, (Object)adaptor.create(set157));
state.errorRecovery=false;
}
else {
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
SEMICOLON158=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_accumulation_method3413);
}
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 {
}
return retval;
}
// $ANTLR end "accumulation_method"
public static class rule_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "rule"
// Fcl.g:221:1: rule : RULE rule_name COLON if_clause then_clause ( with )? SEMICOLON ;
public final FclParser.rule_return rule() throws RecognitionException {
FclParser.rule_return retval = new FclParser.rule_return();
retval.start = input.LT(1);
Object root_0 = null;
Token RULE159=null;
Token COLON161=null;
Token SEMICOLON165=null;
FclParser.rule_name_return rule_name160 = null;
FclParser.if_clause_return if_clause162 = null;
FclParser.then_clause_return then_clause163 = null;
FclParser.with_return with164 = null;
Object RULE159_tree=null;
Object COLON161_tree=null;
Object SEMICOLON165_tree=null;
try {
// Fcl.g:221:6: ( RULE rule_name COLON if_clause then_clause ( with )? SEMICOLON )
// Fcl.g:221:8: RULE rule_name COLON if_clause then_clause ( with )? SEMICOLON
{
root_0 = (Object)adaptor.nil();
RULE159=(Token)match(input,RULE,FOLLOW_RULE_in_rule3421);
RULE159_tree = (Object)adaptor.create(RULE159);
root_0 = (Object)adaptor.becomeRoot(RULE159_tree, root_0);
pushFollow(FOLLOW_rule_name_in_rule3424);
rule_name160=rule_name();
state._fsp--;
adaptor.addChild(root_0, rule_name160.getTree());
COLON161=(Token)match(input,COLON,FOLLOW_COLON_in_rule3426);
pushFollow(FOLLOW_if_clause_in_rule3429);
if_clause162=if_clause();
state._fsp--;
adaptor.addChild(root_0, if_clause162.getTree());
pushFollow(FOLLOW_then_clause_in_rule3431);
then_clause163=then_clause();
state._fsp--;
adaptor.addChild(root_0, then_clause163.getTree());
// Fcl.g:221:53: ( with )?
int alt26=2;
int LA26_0 = input.LA(1);
if ( (LA26_0==WITH) ) {
alt26=1;
}
switch (alt26) {
case 1 :
// Fcl.g:221:54: with
{
pushFollow(FOLLOW_with_in_rule3434);
with164=with();
state._fsp--;
adaptor.addChild(root_0, with164.getTree());
}
break;
}
SEMICOLON165=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_rule3438);
}
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 {
}
return retval;
}
// $ANTLR end "rule"
public static class rule_name_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "rule_name"
// Fcl.g:222:1: rule_name : ( ID | REAL );
public final FclParser.rule_name_return rule_name() throws RecognitionException {
FclParser.rule_name_return retval = new FclParser.rule_name_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set166=null;
Object set166_tree=null;
try {
// Fcl.g:222:11: ( ID | REAL )
// Fcl.g:
{
root_0 = (Object)adaptor.nil();
set166=(Token)input.LT(1);
if ( input.LA(1)==REAL||input.LA(1)==ID ) {
input.consume();
adaptor.addChild(root_0, (Object)adaptor.create(set166));
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 {
}
return retval;
}
// $ANTLR end "rule_name"
public static class if_clause_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "if_clause"
// Fcl.g:223:1: if_clause : IF condition ;
public final FclParser.if_clause_return if_clause() throws RecognitionException {
FclParser.if_clause_return retval = new FclParser.if_clause_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IF167=null;
FclParser.condition_return condition168 = null;
Object IF167_tree=null;
try {
// Fcl.g:223:11: ( IF condition )
// Fcl.g:223:13: IF condition
{
root_0 = (Object)adaptor.nil();
IF167=(Token)match(input,IF,FOLLOW_IF_in_if_clause3458);
IF167_tree = (Object)adaptor.create(IF167);
root_0 = (Object)adaptor.becomeRoot(IF167_tree, root_0);
pushFollow(FOLLOW_condition_in_if_clause3461);
condition168=condition();
state._fsp--;
adaptor.addChild(root_0, condition168.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 {
}
return retval;
}
// $ANTLR end "if_clause"
public static class then_clause_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "then_clause"
// Fcl.g:224:1: then_clause : THEN conclusion ;
public final FclParser.then_clause_return then_clause() throws RecognitionException {
FclParser.then_clause_return retval = new FclParser.then_clause_return();
retval.start = input.LT(1);
Object root_0 = null;
Token THEN169=null;
FclParser.conclusion_return conclusion170 = null;
Object THEN169_tree=null;
try {
// Fcl.g:224:13: ( THEN conclusion )
// Fcl.g:224:15: THEN conclusion
{
root_0 = (Object)adaptor.nil();
THEN169=(Token)match(input,THEN,FOLLOW_THEN_in_then_clause3468);
THEN169_tree = (Object)adaptor.create(THEN169);
root_0 = (Object)adaptor.becomeRoot(THEN169_tree, root_0);
pushFollow(FOLLOW_conclusion_in_then_clause3471);
conclusion170=conclusion();
state._fsp--;
adaptor.addChild(root_0, conclusion170.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 {
}
return retval;
}
// $ANTLR end "then_clause"
public static class condition_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "condition"
// Fcl.g:225:1: condition : subcondition ( ( AND | OR ) subcondition )* ;
public final FclParser.condition_return condition() throws RecognitionException {
FclParser.condition_return retval = new FclParser.condition_return();
retval.start = input.LT(1);
Object root_0 = null;
Token AND172=null;
Token OR173=null;
FclParser.subcondition_return subcondition171 = null;
FclParser.subcondition_return subcondition174 = null;
Object AND172_tree=null;
Object OR173_tree=null;
try {
// Fcl.g:225:11: ( subcondition ( ( AND | OR ) subcondition )* )
// Fcl.g:225:13: subcondition ( ( AND | OR ) subcondition )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_subcondition_in_condition3478);
subcondition171=subcondition();
state._fsp--;
adaptor.addChild(root_0, subcondition171.getTree());
// Fcl.g:225:26: ( ( AND | OR ) subcondition )*
loop28:
do {
int alt28=2;
int LA28_0 = input.LA(1);
if ( (LA28_0==AND||LA28_0==OR) ) {
alt28=1;
}
switch (alt28) {
case 1 :
// Fcl.g:225:27: ( AND | OR ) subcondition
{
// Fcl.g:225:27: ( AND | OR )
int alt27=2;
int LA27_0 = input.LA(1);
if ( (LA27_0==AND) ) {
alt27=1;
}
else if ( (LA27_0==OR) ) {
alt27=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("", 27, 0, input);
throw nvae;
}
switch (alt27) {
case 1 :
// Fcl.g:225:28: AND
{
AND172=(Token)match(input,AND,FOLLOW_AND_in_condition3482);
AND172_tree = (Object)adaptor.create(AND172);
root_0 = (Object)adaptor.becomeRoot(AND172_tree, root_0);
}
break;
case 2 :
// Fcl.g:225:33: OR
{
OR173=(Token)match(input,OR,FOLLOW_OR_in_condition3485);
OR173_tree = (Object)adaptor.create(OR173);
root_0 = (Object)adaptor.becomeRoot(OR173_tree, root_0);
}
break;
}
pushFollow(FOLLOW_subcondition_in_condition3489);
subcondition174=subcondition();
state._fsp--;
adaptor.addChild(root_0, subcondition174.getTree());
}
break;
default :
break loop28;
}
} while (true);
}
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 {
}
return retval;
}
// $ANTLR end "condition"
public static class subcondition_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "subcondition"
// Fcl.g:226:1: subcondition : ( NOT )? ( subcondition_bare | subcondition_paren ) ;
public final FclParser.subcondition_return subcondition() throws RecognitionException {
FclParser.subcondition_return retval = new FclParser.subcondition_return();
retval.start = input.LT(1);
Object root_0 = null;
Token NOT175=null;
FclParser.subcondition_bare_return subcondition_bare176 = null;
FclParser.subcondition_paren_return subcondition_paren177 = null;
Object NOT175_tree=null;
try {
// Fcl.g:226:14: ( ( NOT )? ( subcondition_bare | subcondition_paren ) )
// Fcl.g:226:16: ( NOT )? ( subcondition_bare | subcondition_paren )
{
root_0 = (Object)adaptor.nil();
// Fcl.g:226:16: ( NOT )?
int alt29=2;
int LA29_0 = input.LA(1);
if ( (LA29_0==NOT) ) {
alt29=1;
}
switch (alt29) {
case 1 :
// Fcl.g:226:17: NOT
{
NOT175=(Token)match(input,NOT,FOLLOW_NOT_in_subcondition3499);
NOT175_tree = (Object)adaptor.create(NOT175);
root_0 = (Object)adaptor.becomeRoot(NOT175_tree, root_0);
}
break;
}
// Fcl.g:226:24: ( subcondition_bare | subcondition_paren )
int alt30=2;
int LA30_0 = input.LA(1);
if ( (LA30_0==ID) ) {
alt30=1;
}
else if ( (LA30_0==LEFT_PARENTHESIS) ) {
alt30=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("", 30, 0, input);
throw nvae;
}
switch (alt30) {
case 1 :
// Fcl.g:226:25: subcondition_bare
{
pushFollow(FOLLOW_subcondition_bare_in_subcondition3505);
subcondition_bare176=subcondition_bare();
state._fsp--;
adaptor.addChild(root_0, subcondition_bare176.getTree());
}
break;
case 2 :
// Fcl.g:226:45: subcondition_paren
{
pushFollow(FOLLOW_subcondition_paren_in_subcondition3509);
subcondition_paren177=subcondition_paren();
state._fsp--;
adaptor.addChild(root_0, subcondition_paren177.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 {
}
return retval;
}
// $ANTLR end "subcondition"
public static class subcondition_bare_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "subcondition_bare"
// Fcl.g:227:1: subcondition_bare : ID ( IS ( NOT )? ID )? ;
public final FclParser.subcondition_bare_return subcondition_bare() throws RecognitionException {
FclParser.subcondition_bare_return retval = new FclParser.subcondition_bare_return();
retval.start = input.LT(1);
Object root_0 = null;
Token ID178=null;
Token IS179=null;
Token NOT180=null;
Token ID181=null;
Object ID178_tree=null;
Object IS179_tree=null;
Object NOT180_tree=null;
Object ID181_tree=null;
try {
// Fcl.g:227:19: ( ID ( IS ( NOT )? ID )? )
// Fcl.g:227:21: ID ( IS ( NOT )? ID )?
{
root_0 = (Object)adaptor.nil();
ID178=(Token)match(input,ID,FOLLOW_ID_in_subcondition_bare3517);
ID178_tree = (Object)adaptor.create(ID178);
root_0 = (Object)adaptor.becomeRoot(ID178_tree, root_0);
// Fcl.g:227:25: ( IS ( NOT )? ID )?
int alt32=2;
int LA32_0 = input.LA(1);
if ( (LA32_0==IS) ) {
alt32=1;
}
switch (alt32) {
case 1 :
// Fcl.g:227:26: IS ( NOT )? ID
{
IS179=(Token)match(input,IS,FOLLOW_IS_in_subcondition_bare3521);
// Fcl.g:227:30: ( NOT )?
int alt31=2;
int LA31_0 = input.LA(1);
if ( (LA31_0==NOT) ) {
alt31=1;
}
switch (alt31) {
case 1 :
// Fcl.g:227:31: NOT
{
NOT180=(Token)match(input,NOT,FOLLOW_NOT_in_subcondition_bare3525);
NOT180_tree = (Object)adaptor.create(NOT180);
adaptor.addChild(root_0, NOT180_tree);
}
break;
}
ID181=(Token)match(input,ID,FOLLOW_ID_in_subcondition_bare3529);
ID181_tree = (Object)adaptor.create(ID181);
adaptor.addChild(root_0, ID181_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 {
}
return retval;
}
// $ANTLR end "subcondition_bare"
public static class subcondition_paren_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "subcondition_paren"
// Fcl.g:228:1: subcondition_paren : LEFT_PARENTHESIS condition RIGHT_PARENTHESIS ;
public final FclParser.subcondition_paren_return subcondition_paren() throws RecognitionException {
FclParser.subcondition_paren_return retval = new FclParser.subcondition_paren_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LEFT_PARENTHESIS182=null;
Token RIGHT_PARENTHESIS184=null;
FclParser.condition_return condition183 = null;
Object LEFT_PARENTHESIS182_tree=null;
Object RIGHT_PARENTHESIS184_tree=null;
try {
// Fcl.g:228:20: ( LEFT_PARENTHESIS condition RIGHT_PARENTHESIS )
// Fcl.g:228:22: LEFT_PARENTHESIS condition RIGHT_PARENTHESIS
{
root_0 = (Object)adaptor.nil();
LEFT_PARENTHESIS182=(Token)match(input,LEFT_PARENTHESIS,FOLLOW_LEFT_PARENTHESIS_in_subcondition_paren3539);
LEFT_PARENTHESIS182_tree = (Object)adaptor.create(LEFT_PARENTHESIS182);
root_0 = (Object)adaptor.becomeRoot(LEFT_PARENTHESIS182_tree, root_0);
pushFollow(FOLLOW_condition_in_subcondition_paren3542);
condition183=condition();
state._fsp--;
adaptor.addChild(root_0, condition183.getTree());
RIGHT_PARENTHESIS184=(Token)match(input,RIGHT_PARENTHESIS,FOLLOW_RIGHT_PARENTHESIS_in_subcondition_paren3544);
}
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 {
}
return retval;
}
// $ANTLR end "subcondition_paren"
public static class conclusion_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "conclusion"
// Fcl.g:229:1: conclusion : sub_conclusion ( COMMA sub_conclusion )* ;
public final FclParser.conclusion_return conclusion() throws RecognitionException {
FclParser.conclusion_return retval = new FclParser.conclusion_return();
retval.start = input.LT(1);
Object root_0 = null;
Token COMMA186=null;
FclParser.sub_conclusion_return sub_conclusion185 = null;
FclParser.sub_conclusion_return sub_conclusion187 = null;
Object COMMA186_tree=null;
try {
// Fcl.g:229:12: ( sub_conclusion ( COMMA sub_conclusion )* )
// Fcl.g:229:14: sub_conclusion ( COMMA sub_conclusion )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_sub_conclusion_in_conclusion3552);
sub_conclusion185=sub_conclusion();
state._fsp--;
adaptor.addChild(root_0, sub_conclusion185.getTree());
// Fcl.g:229:29: ( COMMA sub_conclusion )*
loop33:
do {
int alt33=2;
int LA33_0 = input.LA(1);
if ( (LA33_0==COMMA) ) {
alt33=1;
}
switch (alt33) {
case 1 :
// Fcl.g:229:30: COMMA sub_conclusion
{
COMMA186=(Token)match(input,COMMA,FOLLOW_COMMA_in_conclusion3555);
pushFollow(FOLLOW_sub_conclusion_in_conclusion3558);
sub_conclusion187=sub_conclusion();
state._fsp--;
adaptor.addChild(root_0, sub_conclusion187.getTree());
}
break;
default :
break loop33;
}
} while (true);
}
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 {
}
return retval;
}
// $ANTLR end "conclusion"
public static class sub_conclusion_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "sub_conclusion"
// Fcl.g:230:1: sub_conclusion : ID IS ID ;
public final FclParser.sub_conclusion_return sub_conclusion() throws RecognitionException {
FclParser.sub_conclusion_return retval = new FclParser.sub_conclusion_return();
retval.start = input.LT(1);
Object root_0 = null;
Token ID188=null;
Token IS189=null;
Token ID190=null;
Object ID188_tree=null;
Object IS189_tree=null;
Object ID190_tree=null;
try {
// Fcl.g:230:16: ( ID IS ID )
// Fcl.g:230:18: ID IS ID
{
root_0 = (Object)adaptor.nil();
ID188=(Token)match(input,ID,FOLLOW_ID_in_sub_conclusion3567);
ID188_tree = (Object)adaptor.create(ID188);
root_0 = (Object)adaptor.becomeRoot(ID188_tree, root_0);
IS189=(Token)match(input,IS,FOLLOW_IS_in_sub_conclusion3570);
ID190=(Token)match(input,ID,FOLLOW_ID_in_sub_conclusion3573);
ID190_tree = (Object)adaptor.create(ID190);
adaptor.addChild(root_0, ID190_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 {
}
return retval;
}
// $ANTLR end "sub_conclusion"
public static class with_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "with"
// Fcl.g:231:1: with : WITH REAL ;
public final FclParser.with_return with() throws RecognitionException {
FclParser.with_return retval = new FclParser.with_return();
retval.start = input.LT(1);
Object root_0 = null;
Token WITH191=null;
Token REAL192=null;
Object WITH191_tree=null;
Object REAL192_tree=null;
try {
// Fcl.g:231:5: ( WITH REAL )
// Fcl.g:231:7: WITH REAL
{
root_0 = (Object)adaptor.nil();
WITH191=(Token)match(input,WITH,FOLLOW_WITH_in_with3579);
WITH191_tree = (Object)adaptor.create(WITH191);
root_0 = (Object)adaptor.becomeRoot(WITH191_tree, root_0);
REAL192=(Token)match(input,REAL,FOLLOW_REAL_in_with3582);
REAL192_tree = (Object)adaptor.create(REAL192);
adaptor.addChild(root_0, REAL192_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 {
}
return retval;
}
// $ANTLR end "with"
public static class data_type_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "data_type"
// Fcl.g:234:1: data_type : TYPE_REAL ;
public final FclParser.data_type_return data_type() throws RecognitionException {
FclParser.data_type_return retval = new FclParser.data_type_return();
retval.start = input.LT(1);
Object root_0 = null;
Token TYPE_REAL193=null;
Object TYPE_REAL193_tree=null;
try {
// Fcl.g:234:11: ( TYPE_REAL )
// Fcl.g:234:13: TYPE_REAL
{
root_0 = (Object)adaptor.nil();
TYPE_REAL193=(Token)match(input,TYPE_REAL,FOLLOW_TYPE_REAL_in_data_type3591);
TYPE_REAL193_tree = (Object)adaptor.create(TYPE_REAL193);
adaptor.addChild(root_0, TYPE_REAL193_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 {
}
return retval;
}
// $ANTLR end "data_type"
// Delegated rules
public static final BitSet FOLLOW_fcl_in_main2585 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_function_block_in_fcl2602 = new BitSet(new long[]{0x0000004000000002L});
public static final BitSet FOLLOW_FUNCTION_BLOCK_in_function_block2613 = new BitSet(new long[]{0x1000008010400000L,0x0000004000000180L});
public static final BitSet FOLLOW_ID_in_function_block2617 = new BitSet(new long[]{0x1000008010400000L,0x0000000000000180L});
public static final BitSet FOLLOW_declaration_in_function_block2622 = new BitSet(new long[]{0x1000008010400000L,0x0000000000000180L});
public static final BitSet FOLLOW_END_FUNCTION_BLOCK_in_function_block2626 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_var_input_in_declaration2635 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_var_output_in_declaration2639 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_fuzzify_block_in_declaration2643 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_defuzzify_block_in_declaration2647 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_rule_block_in_declaration2651 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_VAR_INPUT_in_var_input2660 = new BitSet(new long[]{0x0000000080000000L,0x0000004000000000L});
public static final BitSet FOLLOW_var_def_in_var_input2664 = new BitSet(new long[]{0x0000000080000000L,0x0000004000000000L});
public static final BitSet FOLLOW_END_VAR_in_var_input2668 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_VAR_OUTPUT_in_var_output2676 = new BitSet(new long[]{0x0000000080000000L,0x0000004000000000L});
public static final BitSet FOLLOW_var_def_in_var_output2680 = new BitSet(new long[]{0x0000000080000000L,0x0000004000000000L});
public static final BitSet FOLLOW_END_VAR_in_var_output2684 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ID_in_var_def2692 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
public static final BitSet FOLLOW_COLON_in_var_def2695 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
public static final BitSet FOLLOW_data_type_in_var_def2698 = new BitSet(new long[]{0x0000000000000000L,0x0000000002000000L});
public static final BitSet FOLLOW_SEMICOLON_in_var_def2700 = new BitSet(new long[]{0x0200000000000002L});
public static final BitSet FOLLOW_range_in_var_def2704 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FUZZIFY_in_fuzzify_block2716 = new BitSet(new long[]{0x0000000000000000L,0x0000004000000000L});
public static final BitSet FOLLOW_ID_in_fuzzify_block2719 = new BitSet(new long[]{0x0000000020000000L,0x0000000000000004L});
public static final BitSet FOLLOW_linguistic_term_in_fuzzify_block2722 = new BitSet(new long[]{0x0000000020000000L,0x0000000000000004L});
public static final BitSet FOLLOW_END_FUZZIFY_in_fuzzify_block2726 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TERM_in_linguistic_term2733 = new BitSet(new long[]{0x0000000000000000L,0x0000004000000000L});
public static final BitSet FOLLOW_ID_in_linguistic_term2736 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_ASSIGN_OPERATOR_in_linguistic_term2738 = new BitSet(new long[]{0xA000003C02010000L,0x0000004400080030L});
public static final BitSet FOLLOW_membership_function_in_linguistic_term2741 = new BitSet(new long[]{0x0000000000000000L,0x0000000002000000L});
public static final BitSet FOLLOW_SEMICOLON_in_linguistic_term2743 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_function_in_membership_function2751 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_singleton_in_membership_function2755 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_singletons_in_membership_function2759 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_piece_wise_linear_in_membership_function2763 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_gauss_in_membership_function2767 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_gauss2_in_membership_function2771 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_trian_in_membership_function2775 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_trape_in_membership_function2779 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_sigm_in_membership_function2783 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_gbell_in_membership_function2787 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_cosine_in_membership_function2791 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_dsigm_in_membership_function2795 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COSINE_in_cosine2802 = new BitSet(new long[]{0x0000000000000000L,0x0000004400000000L});
public static final BitSet FOLLOW_atom_in_cosine2805 = new BitSet(new long[]{0x0000000000000000L,0x0000004400000000L});
public static final BitSet FOLLOW_atom_in_cosine2807 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DSIGM_in_dsigm2813 = new BitSet(new long[]{0x0000000000000000L,0x0000004400000000L});
public static final BitSet FOLLOW_atom_in_dsigm2816 = new BitSet(new long[]{0x0000000000000000L,0x0000004400000000L});
public static final BitSet FOLLOW_atom_in_dsigm2818 = new BitSet(new long[]{0x0000000000000000L,0x0000004400000000L});
public static final BitSet FOLLOW_atom_in_dsigm2820 = new BitSet(new long[]{0x0000000000000000L,0x0000004400000000L});
public static final BitSet FOLLOW_atom_in_dsigm2822 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_GAUSS_in_gauss2828 = new BitSet(new long[]{0x0000000000000000L,0x0000004400000000L});
public static final BitSet FOLLOW_atom_in_gauss2831 = new BitSet(new long[]{0x0000000000000000L,0x0000004400000000L});
public static final BitSet FOLLOW_atom_in_gauss2833 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_GAUSS2_in_gauss22839 = new BitSet(new long[]{0x0000000000000000L,0x0000004400000000L});
public static final BitSet FOLLOW_atom_in_gauss22842 = new BitSet(new long[]{0x0000000000000000L,0x0000004400000000L});
public static final BitSet FOLLOW_atom_in_gauss22844 = new BitSet(new long[]{0x0000000000000000L,0x0000004400000000L});
public static final BitSet FOLLOW_atom_in_gauss22846 = new BitSet(new long[]{0x0000000000000000L,0x0000004400000000L});
public static final BitSet FOLLOW_atom_in_gauss22848 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_GBELL_in_gbell2854 = new BitSet(new long[]{0x0000000000000000L,0x0000004400000000L});
public static final BitSet FOLLOW_atom_in_gbell2857 = new BitSet(new long[]{0x0000000000000000L,0x0000004400000000L});
public static final BitSet FOLLOW_atom_in_gbell2859 = new BitSet(new long[]{0x0000000000000000L,0x0000004400000000L});
public static final BitSet FOLLOW_atom_in_gbell2861 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_points_in_piece_wise_linear2868 = new BitSet(new long[]{0x0000000000000002L,0x0000000000080000L});
public static final BitSet FOLLOW_SIGM_in_sigm2876 = new BitSet(new long[]{0x0000000000000000L,0x0000004400000000L});
public static final BitSet FOLLOW_atom_in_sigm2879 = new BitSet(new long[]{0x0000000000000000L,0x0000004400000000L});
public static final BitSet FOLLOW_atom_in_sigm2881 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_atom_in_singleton2888 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SINGLETONS_in_singletons2894 = new BitSet(new long[]{0x0000000000000000L,0x0000000000080000L});
public static final BitSet FOLLOW_points_in_singletons2898 = new BitSet(new long[]{0x0000000000000002L,0x0000000000080000L});
public static final BitSet FOLLOW_TRAPE_in_trape2907 = new BitSet(new long[]{0x0000000000000000L,0x0000004400000000L});
public static final BitSet FOLLOW_atom_in_trape2910 = new BitSet(new long[]{0x0000000000000000L,0x0000004400000000L});
public static final BitSet FOLLOW_atom_in_trape2912 = new BitSet(new long[]{0x0000000000000000L,0x0000004400000000L});
public static final BitSet FOLLOW_atom_in_trape2914 = new BitSet(new long[]{0x0000000000000000L,0x0000004400000000L});
public static final BitSet FOLLOW_atom_in_trape2916 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TRIAN_in_trian2922 = new BitSet(new long[]{0x0000000000000000L,0x0000004400000000L});
public static final BitSet FOLLOW_atom_in_trian2925 = new BitSet(new long[]{0x0000000000000000L,0x0000004400000000L});
public static final BitSet FOLLOW_atom_in_trian2927 = new BitSet(new long[]{0x0000000000000000L,0x0000004400000000L});
public static final BitSet FOLLOW_atom_in_trian2929 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LEFT_PARENTHESIS_in_points2936 = new BitSet(new long[]{0x0000000000000000L,0x0000004400000000L});
public static final BitSet FOLLOW_atom_in_points2940 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L});
public static final BitSet FOLLOW_COMMA_in_points2942 = new BitSet(new long[]{0x0000000000000000L,0x0000004400000000L});
public static final BitSet FOLLOW_atom_in_points2946 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L});
public static final BitSet FOLLOW_RIGHT_PARENTHESIS_in_points2948 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_real_in_atom2967 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_id_in_atom2971 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ID_in_id2981 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_REAL_in_real3001 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FUNCTION_in_function3019 = new BitSet(new long[]{0x4000180100100100L,0x0000004400080002L});
public static final BitSet FOLLOW_fun_pm_in_function3022 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_fun_md_in_fun_pm3028 = new BitSet(new long[]{0x0000000000000002L,0x0000000000500000L});
public static final BitSet FOLLOW_PLUS_in_fun_pm3032 = new BitSet(new long[]{0x4000180100100100L,0x0000004400080002L});
public static final BitSet FOLLOW_MINUS_in_fun_pm3037 = new BitSet(new long[]{0x4000180100100100L,0x0000004400080002L});
public static final BitSet FOLLOW_fun_md_in_fun_pm3042 = new BitSet(new long[]{0x0000000000000002L,0x0000000000500000L});
public static final BitSet FOLLOW_fun_mp_in_fun_md3055 = new BitSet(new long[]{0x0000000000000002L,0x000000000C000000L});
public static final BitSet FOLLOW_STAR_in_fun_md3059 = new BitSet(new long[]{0x4000180100100100L,0x0000004400080002L});
public static final BitSet FOLLOW_SLASH_in_fun_md3064 = new BitSet(new long[]{0x4000180100100100L,0x0000004400080002L});
public static final BitSet FOLLOW_fun_mp_in_fun_md3068 = new BitSet(new long[]{0x0000000000000002L,0x000000000C000000L});
public static final BitSet FOLLOW_fun_atom_in_fun_mp3082 = new BitSet(new long[]{0x0000000000000002L,0x0000000000220000L});
public static final BitSet FOLLOW_HAT_in_fun_mp3086 = new BitSet(new long[]{0x4000180100100100L,0x0000004400080002L});
public static final BitSet FOLLOW_PERCENT_in_fun_mp3091 = new BitSet(new long[]{0x4000180100100100L,0x0000004400080002L});
public static final BitSet FOLLOW_fun_atom_in_fun_mp3095 = new BitSet(new long[]{0x0000000000000002L,0x0000000000220000L});
public static final BitSet FOLLOW_atom_in_fun_atom3109 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXP_in_fun_atom3114 = new BitSet(new long[]{0x0000000000000000L,0x0000000000080000L});
public static final BitSet FOLLOW_LN_in_fun_atom3117 = new BitSet(new long[]{0x0000000000000000L,0x0000000000080000L});
public static final BitSet FOLLOW_LOG_in_fun_atom3120 = new BitSet(new long[]{0x0000000000000000L,0x0000000000080000L});
public static final BitSet FOLLOW_SIN_in_fun_atom3123 = new BitSet(new long[]{0x0000000000000000L,0x0000000000080000L});
public static final BitSet FOLLOW_COS_in_fun_atom3126 = new BitSet(new long[]{0x0000000000000000L,0x0000000000080000L});
public static final BitSet FOLLOW_TAN_in_fun_atom3129 = new BitSet(new long[]{0x0000000000000000L,0x0000000000080000L});
public static final BitSet FOLLOW_ABS_in_fun_atom3132 = new BitSet(new long[]{0x0000000000000000L,0x0000000000080000L});
public static final BitSet FOLLOW_LEFT_PARENTHESIS_in_fun_atom3137 = new BitSet(new long[]{0x4000180100100100L,0x0000004400080002L});
public static final BitSet FOLLOW_fun_pm_in_fun_atom3140 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L});
public static final BitSet FOLLOW_RIGHT_PARENTHESIS_in_fun_atom3142 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DEFUZZIFY_in_defuzzify_block3153 = new BitSet(new long[]{0x0000000000000000L,0x0000004000000000L});
public static final BitSet FOLLOW_ID_in_defuzzify_block3156 = new BitSet(new long[]{0x0200400028200000L,0x0000000000000004L});
public static final BitSet FOLLOW_defuzzify_item_in_defuzzify_block3159 = new BitSet(new long[]{0x0200400028200000L,0x0000000000000004L});
public static final BitSet FOLLOW_END_DEFUZZIFY_in_defuzzify_block3163 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_defuzzification_method_in_defuzzify_item3171 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_default_value_in_defuzzify_item3175 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_linguistic_term_in_defuzzify_item3179 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_range_in_defuzzify_item3183 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RANGE_in_range3190 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_ASSIGN_OPERATOR_in_range3193 = new BitSet(new long[]{0x0000000000000000L,0x0000000000080000L});
public static final BitSet FOLLOW_LEFT_PARENTHESIS_in_range3196 = new BitSet(new long[]{0x0000000000000000L,0x0000000400000000L});
public static final BitSet FOLLOW_REAL_in_range3199 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
public static final BitSet FOLLOW_DOTS_in_range3201 = new BitSet(new long[]{0x0000000000000000L,0x0000000400000000L});
public static final BitSet FOLLOW_REAL_in_range3204 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L});
public static final BitSet FOLLOW_RIGHT_PARENTHESIS_in_range3206 = new BitSet(new long[]{0x0000000000000000L,0x0000000002000000L});
public static final BitSet FOLLOW_SEMICOLON_in_range3209 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_METHOD_in_defuzzification_method3217 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
public static final BitSet FOLLOW_COLON_in_defuzzification_method3220 = new BitSet(new long[]{0x04040400000E8000L});
public static final BitSet FOLLOW_set_in_defuzzification_method3223 = new BitSet(new long[]{0x0000000000000000L,0x0000000002000000L});
public static final BitSet FOLLOW_SEMICOLON_in_defuzzification_method3239 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DEFAULT_in_default_value3247 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_ASSIGN_OPERATOR_in_default_value3250 = new BitSet(new long[]{0x0008000000000000L,0x0000000400000000L});
public static final BitSet FOLLOW_set_in_default_value3253 = new BitSet(new long[]{0x0000000000000000L,0x0000000002000000L});
public static final BitSet FOLLOW_SEMICOLON_in_default_value3261 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RULEBLOCK_in_rule_block3271 = new BitSet(new long[]{0x0000000000000000L,0x0000004000000000L});
public static final BitSet FOLLOW_ID_in_rule_block3274 = new BitSet(new long[]{0x0840000040000E00L});
public static final BitSet FOLLOW_rule_item_in_rule_block3277 = new BitSet(new long[]{0x0840000040000E00L});
public static final BitSet FOLLOW_END_RULEBLOCK_in_rule_block3281 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_operator_definition_in_rule_item3289 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_activation_method_in_rule_item3293 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_accumulation_method_in_rule_item3297 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_rule_in_rule_item3301 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_operator_definition_or_in_operator_definition3308 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_operator_definition_and_in_operator_definition3312 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_OR_in_operator_definition_or3319 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
public static final BitSet FOLLOW_COLON_in_operator_definition_or3322 = new BitSet(new long[]{0x0002200004805000L});
public static final BitSet FOLLOW_set_in_operator_definition_or3325 = new BitSet(new long[]{0x0000000000000000L,0x0000000002000000L});
public static final BitSet FOLLOW_SEMICOLON_in_operator_definition_or3339 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_AND_in_operator_definition_and3347 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
public static final BitSet FOLLOW_COLON_in_operator_definition_and3350 = new BitSet(new long[]{0x0101800201002000L});
public static final BitSet FOLLOW_set_in_operator_definition_and3353 = new BitSet(new long[]{0x0000000000000000L,0x0000000002000000L});
public static final BitSet FOLLOW_SEMICOLON_in_operator_definition_and3367 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ACT_in_activation_method3375 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
public static final BitSet FOLLOW_COLON_in_activation_method3378 = new BitSet(new long[]{0x0100800000000000L});
public static final BitSet FOLLOW_set_in_activation_method3381 = new BitSet(new long[]{0x0000000000000000L,0x0000000002000000L});
public static final BitSet FOLLOW_SEMICOLON_in_activation_method3387 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ACCU_in_accumulation_method3395 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
public static final BitSet FOLLOW_COLON_in_accumulation_method3398 = new BitSet(new long[]{0x00A0200000004000L,0x0000000000000001L});
public static final BitSet FOLLOW_set_in_accumulation_method3401 = new BitSet(new long[]{0x0000000000000000L,0x0000000002000000L});
public static final BitSet FOLLOW_SEMICOLON_in_accumulation_method3413 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RULE_in_rule3421 = new BitSet(new long[]{0x0000000000000000L,0x0000004400000000L});
public static final BitSet FOLLOW_rule_name_in_rule3424 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
public static final BitSet FOLLOW_COLON_in_rule3426 = new BitSet(new long[]{0x0000010000000000L});
public static final BitSet FOLLOW_if_clause_in_rule3429 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
public static final BitSet FOLLOW_then_clause_in_rule3431 = new BitSet(new long[]{0x0000000000000000L,0x0000000002000200L});
public static final BitSet FOLLOW_with_in_rule3434 = new BitSet(new long[]{0x0000000000000000L,0x0000000002000000L});
public static final BitSet FOLLOW_SEMICOLON_in_rule3438 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_set_in_rule_name0 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IF_in_if_clause3458 = new BitSet(new long[]{0x0010000000000000L,0x0000004000080000L});
public static final BitSet FOLLOW_condition_in_if_clause3461 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_THEN_in_then_clause3468 = new BitSet(new long[]{0x0000000000000000L,0x0000004000000000L});
public static final BitSet FOLLOW_conclusion_in_then_clause3471 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_subcondition_in_condition3478 = new BitSet(new long[]{0x0040000000000802L});
public static final BitSet FOLLOW_AND_in_condition3482 = new BitSet(new long[]{0x0010000000000000L,0x0000004000080000L});
public static final BitSet FOLLOW_OR_in_condition3485 = new BitSet(new long[]{0x0010000000000000L,0x0000004000080000L});
public static final BitSet FOLLOW_subcondition_in_condition3489 = new BitSet(new long[]{0x0040000000000802L});
public static final BitSet FOLLOW_NOT_in_subcondition3499 = new BitSet(new long[]{0x0010000000000000L,0x0000004000080000L});
public static final BitSet FOLLOW_subcondition_bare_in_subcondition3505 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_subcondition_paren_in_subcondition3509 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ID_in_subcondition_bare3517 = new BitSet(new long[]{0x0000020000000002L});
public static final BitSet FOLLOW_IS_in_subcondition_bare3521 = new BitSet(new long[]{0x0010000000000000L,0x0000004000000000L});
public static final BitSet FOLLOW_NOT_in_subcondition_bare3525 = new BitSet(new long[]{0x0000000000000000L,0x0000004000000000L});
public static final BitSet FOLLOW_ID_in_subcondition_bare3529 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LEFT_PARENTHESIS_in_subcondition_paren3539 = new BitSet(new long[]{0x0010000000000000L,0x0000004000080000L});
public static final BitSet FOLLOW_condition_in_subcondition_paren3542 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L});
public static final BitSet FOLLOW_RIGHT_PARENTHESIS_in_subcondition_paren3544 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_sub_conclusion_in_conclusion3552 = new BitSet(new long[]{0x0000000000000002L,0x0000000000004000L});
public static final BitSet FOLLOW_COMMA_in_conclusion3555 = new BitSet(new long[]{0x0000000000000000L,0x0000004000000000L});
public static final BitSet FOLLOW_sub_conclusion_in_conclusion3558 = new BitSet(new long[]{0x0000000000000002L,0x0000000000004000L});
public static final BitSet FOLLOW_ID_in_sub_conclusion3567 = new BitSet(new long[]{0x0000020000000000L});
public static final BitSet FOLLOW_IS_in_sub_conclusion3570 = new BitSet(new long[]{0x0000000000000000L,0x0000004000000000L});
public static final BitSet FOLLOW_ID_in_sub_conclusion3573 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_WITH_in_with3579 = new BitSet(new long[]{0x0000000000000000L,0x0000000400000000L});
public static final BitSet FOLLOW_REAL_in_with3582 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TYPE_REAL_in_data_type3591 = new BitSet(new long[]{0x0000000000000002L});
}