public virtual IReturnVector executeFunction(Rete engine, IParameter[] params_Renamed) { DefaultReturnVector ret = new DefaultReturnVector(); bool add = false; if (engine.findFunction(name) == null) { // first we Get the actual function from the shell function IFunction[] functions = new IFunction[this.functions.Count]; IParameter[][] parameters = new IParameter[this.functions.Count][]; for (int i = 0; i < functions.Length; ++i) { ShellFunction sf = (ShellFunction)this.functions[i]; functions[i] = engine.findFunction(sf.Name); parameters[i] = sf.Parameters; } InterpretedFunction intrfunc = new InterpretedFunction(name, this.parameters, functions, parameters); intrfunc.configureFunction(engine); engine.declareFunction(intrfunc); add = true; } DefaultReturnValue rv = new DefaultReturnValue(Constants.BOOLEAN_OBJECT, add); ret.addReturnValue(rv); return(ret); }
public Object basicExpr() { Object exp = null; Token obj = null; ShellFunction func = null; IParameter[] pms = null; ShellBoundParam sbp = null; switch ((jj_ntk_Renamed_Field == - 1) ? jj_ntk() : jj_ntk_Renamed_Field) { case CLIPSParserConstants_Fields.BIND: case CLIPSParserConstants_Fields.BIND3: case CLIPSParserConstants_Fields.BIND4: obj = BindType; func = new ShellFunction(); func.Name = "echo"; sbp = new ShellBoundParam(); sbp.DefglobalName = obj.image; pms = new ShellBoundParam[] {sbp}; func.Parameters = pms; { if (true) return func; } break; case CLIPSParserConstants_Fields.LBRACE: jj_consume_token(CLIPSParserConstants_Fields.LBRACE); exp = expr(); jj_consume_token(CLIPSParserConstants_Fields.RBRACE); { if (true) return exp; } break; case 0: jj_consume_token(0); { if (true) return null; } break; default: jj_la1[0] = jj_gen; jj_consume_token(- 1); throw new ParseException(); } throw new ApplicationException("Missing return statement in function"); }
public Object basicExpr() { Object exp = null; Token obj = null; ShellFunction func = null; IParameter[] pms = null; ShellBoundParam sbp = null; int HACK = (mcc_ntk == -1) ? mcc_mntk() : mcc_ntk; switch (HACK) { case BIND: case BIND3: case BIND4: obj = getBindType(); func = new ShellFunction(); func.Name = "echo"; sbp = new ShellBoundParam(); sbp.DefglobalName = obj.image; pms = new ShellBoundParam[] {sbp}; func.setParameters(pms); { if (true) { return func; } } break; case LBRACE: mcc_consume_token(LBRACE); exp = expr(); mcc_consume_token(RBRACE); { if (true) { return exp; } } break; case 0: mcc_consume_token(0); { if (true) { return null; } } break; default: mcc_la1[0] = mcc_gen; mcc_consume_token(-1); throw new ParseException(); } throw new Exception("Missing return statement in function"); }
public Object expr() { Token exp = null; Token exp2 = null; Token exp3 = null; String body; ValueParam param; Deffact fact; Deftemplate templ; Defrule rule; ShellFunction func; DeffunctionFunction dffunc; ArrayList list = new ArrayList(); ValueParam[] pms; IList infunc = new ArrayList(); switch ((jj_ntk_Renamed_Field == - 1) ? jj_ntk() : jj_ntk_Renamed_Field) { case CLIPSParserConstants_Fields.ASSERT: exp = jj_consume_token(CLIPSParserConstants_Fields.ASSERT); jj_consume_token(CLIPSParserConstants_Fields.LBRACE); exp2 = jj_consume_token(CLIPSParserConstants_Fields.IDENTIFIER); while (true) { assertContents(list); switch ((jj_ntk_Renamed_Field == - 1) ? jj_ntk() : jj_ntk_Renamed_Field) { case CLIPSParserConstants_Fields.LBRACE: ; break; default: jj_la1[3] = jj_gen; //UPGRADE_NOTE: Labeled break statement was changed to a goto statement. 'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="jlca1012"' goto label_2_brk; } } //UPGRADE_NOTE: Label 'label_2_brk' was added. 'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="jlca1011"' label_2_brk: ; jj_consume_token(CLIPSParserConstants_Fields.RBRACE); func = new ShellFunction(); func.Name = exp.image; pms = new ValueParam[2]; pms[0] = new ValueParam(Constants.STRING_TYPE, exp2.image); object[] lst = new object[list.Count]; list.CopyTo(lst, 0); pms[1] = new ValueParam(Constants.OBJECT_TYPE, lst); func.setParameters(pms); exp.clear(); exp = null; { if (true) return func; } break; case CLIPSParserConstants_Fields.ASSERTTEMPORAL: exp = jj_consume_token(CLIPSParserConstants_Fields.ASSERTTEMPORAL); jj_consume_token(CLIPSParserConstants_Fields.LBRACE); exp2 = jj_consume_token(CLIPSParserConstants_Fields.IDENTIFIER); while (true) { assertContents(list); switch ((jj_ntk_Renamed_Field == - 1) ? jj_ntk() : jj_ntk_Renamed_Field) { case CLIPSParserConstants_Fields.LBRACE: ; break; default: jj_la1[4] = jj_gen; //UPGRADE_NOTE: Labeled break statement was changed to a goto statement. 'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="jlca1012"' goto label_3_brk; } } //UPGRADE_NOTE: Label 'label_3_brk' was added. 'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="jlca1011"' label_3_brk: ; jj_consume_token(CLIPSParserConstants_Fields.RBRACE); func = new ShellFunction(); func.Name = exp.image; pms = new ValueParam[2]; pms[0] = new ValueParam(Constants.STRING_TYPE, exp2.image); object[] lst1 = new object[list.Count]; list.CopyTo(lst1,0); pms[1] = new ValueParam(Constants.OBJECT_TYPE, lst1); func.setParameters(pms); exp.clear(); exp = null; { if (true) return func; } break; case CLIPSParserConstants_Fields.RETRACT: exp = jj_consume_token(CLIPSParserConstants_Fields.RETRACT); switch ((jj_ntk_Renamed_Field == - 1) ? jj_ntk() : jj_ntk_Renamed_Field) { case CLIPSParserConstants_Fields.BIND: exp2 = jj_consume_token(CLIPSParserConstants_Fields.BIND); break; case CLIPSParserConstants_Fields.INTEGER_LITERAL: exp2 = jj_consume_token(CLIPSParserConstants_Fields.INTEGER_LITERAL); break; default: jj_la1[5] = jj_gen; jj_consume_token(- 1); throw new ParseException(); } func = new ShellFunction(); func.Name = exp.image; IParameter[] rpms = new IParameter[1]; if (exp2.image.StartsWith("?")) { BoundParam bp = new BoundParam(); bp.VariableName = exp2.image; rpms[0] = bp; } else { ValueParam vp = new ValueParam(Constants.BIG_DECIMAL, Decimal.Parse(exp2.image)); rpms[0] = vp; } func.Parameters = rpms; exp.clear(); exp = null; exp2.clear(); exp2 = null; { if (true) return func; } break; case CLIPSParserConstants_Fields.MODIFY: exp = jj_consume_token(CLIPSParserConstants_Fields.MODIFY); exp2 = jj_consume_token(CLIPSParserConstants_Fields.BIND); assertContents(list); func = new ShellFunction(); func.Name = exp.image; BoundParam bp1 = new BoundParam(); bp1.VariableName = exp2.image; list.Insert(0, bp1); func.setParameters(ParameterUtils.slotToParameters(list)); exp.clear(); exp = null; { if (true) return func; } break; case CLIPSParserConstants_Fields.DEFTEMPLATE: exp = jj_consume_token(CLIPSParserConstants_Fields.DEFTEMPLATE); templ = templateExpr(); func = new ShellFunction(); func.Name = exp.image; pms = new ValueParam[1]; pms[0] = new ValueParam(Constants.OBJECT_TYPE, templ); func.setParameters(pms); { if (true) return func; } break; case CLIPSParserConstants_Fields.DEFMODULE: exp = jj_consume_token(CLIPSParserConstants_Fields.DEFMODULE); body = Identifier; func = new ShellFunction(); func.Name = exp.image; pms = new ValueParam[1]; pms[0] = new ValueParam(Constants.STRING_TYPE, body); func.setParameters(pms); { if (true) return func; } break; case CLIPSParserConstants_Fields.DEFRULE: exp = jj_consume_token(CLIPSParserConstants_Fields.DEFRULE); rule = ruleBody(); func = new ShellFunction(); func.Name = exp.image; pms = new ValueParam[1]; pms[0] = new ValueParam(Constants.OBJECT_TYPE, rule); func.setParameters(pms); { if (true) return func; } break; case CLIPSParserConstants_Fields.DEFCLASS: exp = jj_consume_token(CLIPSParserConstants_Fields.DEFCLASS); switch ((jj_ntk_Renamed_Field == - 1) ? jj_ntk() : jj_ntk_Renamed_Field) { case CLIPSParserConstants_Fields.LBRACE: case CLIPSParserConstants_Fields.INTEGER_LITERAL: case CLIPSParserConstants_Fields.FLOATING_POINT_LITERAL: case CLIPSParserConstants_Fields.STRING_LITERAL: case CLIPSParserConstants_Fields.BIND: case CLIPSParserConstants_Fields.BIND3: case CLIPSParserConstants_Fields.BIND4: case CLIPSParserConstants_Fields.TRUE: case CLIPSParserConstants_Fields.TRUE2: case CLIPSParserConstants_Fields.FALSE: case CLIPSParserConstants_Fields.FALSE2: case CLIPSParserConstants_Fields.IDENTIFIER: case CLIPSParserConstants_Fields.PATH_LITERAL: while (true) { valueParams(list); switch ((jj_ntk_Renamed_Field == - 1) ? jj_ntk() : jj_ntk_Renamed_Field) { case CLIPSParserConstants_Fields.LBRACE: case CLIPSParserConstants_Fields.INTEGER_LITERAL: case CLIPSParserConstants_Fields.FLOATING_POINT_LITERAL: case CLIPSParserConstants_Fields.STRING_LITERAL: case CLIPSParserConstants_Fields.BIND: case CLIPSParserConstants_Fields.BIND3: case CLIPSParserConstants_Fields.BIND4: case CLIPSParserConstants_Fields.TRUE: case CLIPSParserConstants_Fields.TRUE2: case CLIPSParserConstants_Fields.FALSE: case CLIPSParserConstants_Fields.FALSE2: case CLIPSParserConstants_Fields.IDENTIFIER: case CLIPSParserConstants_Fields.PATH_LITERAL: ; break; default: jj_la1[6] = jj_gen; //UPGRADE_NOTE: Labeled break statement was changed to a goto statement. 'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="jlca1012"' goto label_4_brk; } } //UPGRADE_NOTE: Label 'label_4_brk' was added. 'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="jlca1011"' label_4_brk: ; break; default: jj_la1[7] = jj_gen; ; break; } func = new ShellFunction(); func.Name = exp.image; func.setParameters(ParameterUtils.convertParameters(list)); list.Clear(); { if (true) return func; } break; case CLIPSParserConstants_Fields.DEFFUNCTION: exp = jj_consume_token(CLIPSParserConstants_Fields.DEFFUNCTION); exp2 = jj_consume_token(CLIPSParserConstants_Fields.IDENTIFIER); jj_consume_token(CLIPSParserConstants_Fields.LBRACE); switch ((jj_ntk_Renamed_Field == - 1) ? jj_ntk() : jj_ntk_Renamed_Field) { case CLIPSParserConstants_Fields.BIND: case CLIPSParserConstants_Fields.BIND3: case CLIPSParserConstants_Fields.BIND4: while (true) { bindingParams(list); switch ((jj_ntk_Renamed_Field == - 1) ? jj_ntk() : jj_ntk_Renamed_Field) { case CLIPSParserConstants_Fields.BIND: case CLIPSParserConstants_Fields.BIND3: case CLIPSParserConstants_Fields.BIND4: ; break; default: jj_la1[8] = jj_gen; //UPGRADE_NOTE: Labeled break statement was changed to a goto statement. 'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="jlca1012"' goto label_5_brk; } } //UPGRADE_NOTE: Label 'label_5_brk' was added. 'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="jlca1011"' label_5_brk: ; break; default: jj_la1[9] = jj_gen; ; break; } jj_consume_token(CLIPSParserConstants_Fields.RBRACE); jj_consume_token(CLIPSParserConstants_Fields.LBRACE); switch ((jj_ntk_Renamed_Field == - 1) ? jj_ntk() : jj_ntk_Renamed_Field) { case CLIPSParserConstants_Fields.BINDING: case CLIPSParserConstants_Fields.ASSERT: case CLIPSParserConstants_Fields.ASSERTTEMPORAL: case CLIPSParserConstants_Fields.DEFCLASS: case CLIPSParserConstants_Fields.DEFFUNCTION: case CLIPSParserConstants_Fields.DEFMODULE: case CLIPSParserConstants_Fields.DEFRULE: case CLIPSParserConstants_Fields.DEFTEMPLATE: case CLIPSParserConstants_Fields.MODIFY: case CLIPSParserConstants_Fields.RETRACT: case CLIPSParserConstants_Fields.PLUS: case CLIPSParserConstants_Fields.MINUS: case CLIPSParserConstants_Fields.MULTIPLY: case CLIPSParserConstants_Fields.DIVIDE: case CLIPSParserConstants_Fields.GT1: case CLIPSParserConstants_Fields.GT2: case CLIPSParserConstants_Fields.LT1: case CLIPSParserConstants_Fields.LT2: case CLIPSParserConstants_Fields.EQ1: case CLIPSParserConstants_Fields.EQ2: case CLIPSParserConstants_Fields.LE1: case CLIPSParserConstants_Fields.LE2: case CLIPSParserConstants_Fields.GE1: case CLIPSParserConstants_Fields.GE2: case CLIPSParserConstants_Fields.IDENTIFIER: ruleAction(infunc); break; default: jj_la1[10] = jj_gen; ; break; } jj_consume_token(CLIPSParserConstants_Fields.RBRACE); dffunc = new DeffunctionFunction(); dffunc.Name = exp2.image; dffunc.setParameters(ParameterUtils.convertParameters(list)); dffunc.setFunction(infunc); list.Clear(); { if (true) return dffunc; } break; case CLIPSParserConstants_Fields.BINDING: jj_consume_token(CLIPSParserConstants_Fields.BINDING); exp = BindType; while (true) { valueParams(list); switch ((jj_ntk_Renamed_Field == - 1) ? jj_ntk() : jj_ntk_Renamed_Field) { case CLIPSParserConstants_Fields.LBRACE: case CLIPSParserConstants_Fields.INTEGER_LITERAL: case CLIPSParserConstants_Fields.FLOATING_POINT_LITERAL: case CLIPSParserConstants_Fields.STRING_LITERAL: case CLIPSParserConstants_Fields.BIND: case CLIPSParserConstants_Fields.BIND3: case CLIPSParserConstants_Fields.BIND4: case CLIPSParserConstants_Fields.TRUE: case CLIPSParserConstants_Fields.TRUE2: case CLIPSParserConstants_Fields.FALSE: case CLIPSParserConstants_Fields.FALSE2: case CLIPSParserConstants_Fields.IDENTIFIER: case CLIPSParserConstants_Fields.PATH_LITERAL: ; break; default: jj_la1[11] = jj_gen; //UPGRADE_NOTE: Labeled break statement was changed to a goto statement. 'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="jlca1012"' goto label_6_brk; } } //UPGRADE_NOTE: Label 'label_6_brk' was added. 'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="jlca1011"' label_6_brk: ; func = new ShellFunction(); func.Name = "bind"; list.Insert(0, new ValueParam(Constants.STRING_TYPE, exp.image.Substring(1))); func.setParameters(ParameterUtils.convertParameters(list)); list.Clear(); { if (true) return func; } break; case CLIPSParserConstants_Fields.PLUS: case CLIPSParserConstants_Fields.MINUS: case CLIPSParserConstants_Fields.MULTIPLY: case CLIPSParserConstants_Fields.DIVIDE: case CLIPSParserConstants_Fields.GT1: case CLIPSParserConstants_Fields.GT2: case CLIPSParserConstants_Fields.LT1: case CLIPSParserConstants_Fields.LT2: case CLIPSParserConstants_Fields.EQ1: case CLIPSParserConstants_Fields.EQ2: case CLIPSParserConstants_Fields.LE1: case CLIPSParserConstants_Fields.LE2: case CLIPSParserConstants_Fields.GE1: case CLIPSParserConstants_Fields.GE2: switch ((jj_ntk_Renamed_Field == - 1) ? jj_ntk() : jj_ntk_Renamed_Field) { case CLIPSParserConstants_Fields.PLUS: exp = jj_consume_token(CLIPSParserConstants_Fields.PLUS); break; case CLIPSParserConstants_Fields.MINUS: exp = jj_consume_token(CLIPSParserConstants_Fields.MINUS); break; case CLIPSParserConstants_Fields.MULTIPLY: exp = jj_consume_token(CLIPSParserConstants_Fields.MULTIPLY); break; case CLIPSParserConstants_Fields.DIVIDE: exp = jj_consume_token(CLIPSParserConstants_Fields.DIVIDE); break; case CLIPSParserConstants_Fields.GT1: exp = jj_consume_token(CLIPSParserConstants_Fields.GT1); break; case CLIPSParserConstants_Fields.GT2: exp = jj_consume_token(CLIPSParserConstants_Fields.GT2); break; case CLIPSParserConstants_Fields.LT1: exp = jj_consume_token(CLIPSParserConstants_Fields.LT1); break; case CLIPSParserConstants_Fields.LT2: exp = jj_consume_token(CLIPSParserConstants_Fields.LT2); break; case CLIPSParserConstants_Fields.EQ1: exp = jj_consume_token(CLIPSParserConstants_Fields.EQ1); break; case CLIPSParserConstants_Fields.EQ2: exp = jj_consume_token(CLIPSParserConstants_Fields.EQ2); break; case CLIPSParserConstants_Fields.LE1: exp = jj_consume_token(CLIPSParserConstants_Fields.LE1); break; case CLIPSParserConstants_Fields.LE2: exp = jj_consume_token(CLIPSParserConstants_Fields.LE2); break; case CLIPSParserConstants_Fields.GE1: exp = jj_consume_token(CLIPSParserConstants_Fields.GE1); break; case CLIPSParserConstants_Fields.GE2: exp = jj_consume_token(CLIPSParserConstants_Fields.GE2); break; default: jj_la1[12] = jj_gen; jj_consume_token(- 1); throw new ParseException(); } while (true) { valueParams(list); switch ((jj_ntk_Renamed_Field == - 1) ? jj_ntk() : jj_ntk_Renamed_Field) { case CLIPSParserConstants_Fields.LBRACE: case CLIPSParserConstants_Fields.INTEGER_LITERAL: case CLIPSParserConstants_Fields.FLOATING_POINT_LITERAL: case CLIPSParserConstants_Fields.STRING_LITERAL: case CLIPSParserConstants_Fields.BIND: case CLIPSParserConstants_Fields.BIND3: case CLIPSParserConstants_Fields.BIND4: case CLIPSParserConstants_Fields.TRUE: case CLIPSParserConstants_Fields.TRUE2: case CLIPSParserConstants_Fields.FALSE: case CLIPSParserConstants_Fields.FALSE2: case CLIPSParserConstants_Fields.IDENTIFIER: case CLIPSParserConstants_Fields.PATH_LITERAL: ; break; default: jj_la1[13] = jj_gen; //UPGRADE_NOTE: Labeled break statement was changed to a goto statement. 'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="jlca1012"' goto label_7_brk; } } //UPGRADE_NOTE: Label 'label_7_brk' was added. 'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="jlca1011"' label_7_brk: ; func = new ShellFunction(); func.Name = exp.image; func.setParameters(ParameterUtils.convertParameters(list)); list.Clear(); { if (true) return func; } break; case CLIPSParserConstants_Fields.IDENTIFIER: exp = jj_consume_token(CLIPSParserConstants_Fields.IDENTIFIER); switch ((jj_ntk_Renamed_Field == - 1) ? jj_ntk() : jj_ntk_Renamed_Field) { case CLIPSParserConstants_Fields.LBRACE: case CLIPSParserConstants_Fields.INTEGER_LITERAL: case CLIPSParserConstants_Fields.FLOATING_POINT_LITERAL: case CLIPSParserConstants_Fields.STRING_LITERAL: case CLIPSParserConstants_Fields.BIND: case CLIPSParserConstants_Fields.BIND3: case CLIPSParserConstants_Fields.BIND4: case CLIPSParserConstants_Fields.TRUE: case CLIPSParserConstants_Fields.TRUE2: case CLIPSParserConstants_Fields.FALSE: case CLIPSParserConstants_Fields.FALSE2: case CLIPSParserConstants_Fields.IDENTIFIER: case CLIPSParserConstants_Fields.PATH_LITERAL: while (true) { valueParams(list); switch ((jj_ntk_Renamed_Field == - 1) ? jj_ntk() : jj_ntk_Renamed_Field) { case CLIPSParserConstants_Fields.LBRACE: case CLIPSParserConstants_Fields.INTEGER_LITERAL: case CLIPSParserConstants_Fields.FLOATING_POINT_LITERAL: case CLIPSParserConstants_Fields.STRING_LITERAL: case CLIPSParserConstants_Fields.BIND: case CLIPSParserConstants_Fields.BIND3: case CLIPSParserConstants_Fields.BIND4: case CLIPSParserConstants_Fields.TRUE: case CLIPSParserConstants_Fields.TRUE2: case CLIPSParserConstants_Fields.FALSE: case CLIPSParserConstants_Fields.FALSE2: case CLIPSParserConstants_Fields.IDENTIFIER: case CLIPSParserConstants_Fields.PATH_LITERAL: ; break; default: jj_la1[14] = jj_gen; //UPGRADE_NOTE: Labeled break statement was changed to a goto statement. 'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="jlca1012"' goto label_8_brk; } } //UPGRADE_NOTE: Label 'label_8_brk' was added. 'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="jlca1011"' label_8_brk: ; break; default: jj_la1[15] = jj_gen; ; break; } func = new ShellFunction(); func.Name = exp.image; func.setParameters(ParameterUtils.convertParameters(list)); list.Clear(); { if (true) return func; } break; default: jj_la1[16] = jj_gen; jj_consume_token(- 1); throw new ParseException(); } throw new ApplicationException("Missing return statement in function"); }
public Object expr() { Token exp = null; Token exp2 = null; Token exp3 = null; String body; ValueParam param; Deffact fact; Deftemplate templ; Defrule rule; ShellFunction func; DeffunctionFunction dffunc; ArrayList list = new ArrayList(); ValueParam[] pms; ArrayList infunc = new ArrayList(); switch ((mcc_ntk == -1) ? mcc_mntk() : mcc_ntk) { case ASSERT: exp = mcc_consume_token(ASSERT); mcc_consume_token(LBRACE); exp2 = mcc_consume_token(IDENTIFIER); while (true) { assertContents(list); switch ((mcc_ntk == -1) ? mcc_mntk() : mcc_ntk) { case LBRACE: ; break; default: mcc_la1[3] = mcc_gen; goto label_2; } } label_2: ; mcc_consume_token(RBRACE); func = new ShellFunction(); func.Name = exp.image; pms = new ValueParam[2]; pms[0] = new ValueParam(Constants.STRING_TYPE, exp2.image); pms[1] = new ValueParam(Constants.OBJECT_TYPE, list.ToArray()); func.setParameters(pms); exp.Clear(); exp = null; { if (true) return func; } break; case ASSERTTEMPORAL: exp = mcc_consume_token(ASSERTTEMPORAL); mcc_consume_token(LBRACE); exp2 = mcc_consume_token(IDENTIFIER); while (true) { assertContents(list); switch ((mcc_ntk == -1) ? mcc_mntk() : mcc_ntk) { case LBRACE: ; break; default: mcc_la1[4] = mcc_gen; goto label_3; } } label_3: ; mcc_consume_token(RBRACE); func = new ShellFunction(); func.Name = exp.image; pms = new ValueParam[2]; pms[0] = new ValueParam(Constants.STRING_TYPE, exp2.image); pms[1] = new ValueParam(Constants.OBJECT_TYPE, list.ToArray()); func.setParameters(pms); exp.Clear(); exp = null; { if (true) return func; } break; case RETRACT: exp = mcc_consume_token(RETRACT); switch ((mcc_ntk == -1) ? mcc_mntk() : mcc_ntk) { case BIND: exp2 = mcc_consume_token(BIND); break; case INTEGER_LITERAL: exp2 = mcc_consume_token(INTEGER_LITERAL); break; default: mcc_la1[5] = mcc_gen; mcc_consume_token(-1); throw new ParseException(); } func = new ShellFunction(); func.Name = exp.image; IParameter[] rpms = new IParameter[1]; if (exp2.image.StartsWith("?")) { BoundParam bp1 = new BoundParam(); bp1.VariableName = exp2.image; rpms[0] = bp1; } else { ValueParam vp = new ValueParam(Constants.BIG_DECIMAL, Convert.ToDecimal(exp2.image)); rpms[0] = vp; } func.setParameters(rpms); exp.Clear(); exp = null; exp2.Clear(); exp2 = null; { if (true) return func; } break; case MODIFY: exp = mcc_consume_token(MODIFY); exp2 = mcc_consume_token(BIND); assertContents(list); func = new ShellFunction(); func.Name = exp.image; BoundParam bp = new BoundParam(); bp.VariableName = exp2.image; list.Insert(0, bp); func.setParameters(ParameterUtils.slotToParameters(list)); exp.Clear(); exp = null; { if (true) return func; } break; case DEFTEMPLATE: exp = mcc_consume_token(DEFTEMPLATE); templ = templateExpr(); func = new ShellFunction(); func.Name = exp.image; pms = new ValueParam[1]; pms[0] = new ValueParam(Constants.OBJECT_TYPE, templ); func.setParameters(pms); { if (true) return func; } break; case DEFMODULE: exp = mcc_consume_token(DEFMODULE); body = getIdentifier(); func = new ShellFunction(); func.Name = exp.image; pms = new ValueParam[1]; pms[0] = new ValueParam(Constants.STRING_TYPE, body); func.setParameters(pms); { if (true) return func; } break; case DEFRULE: exp = mcc_consume_token(DEFRULE); rule = ruleBody(); func = new ShellFunction(); func.Name = exp.image; pms = new ValueParam[1]; pms[0] = new ValueParam(Constants.OBJECT_TYPE, rule); func.setParameters(pms); { if (true) return func; } break; case DEFCLASS: exp = mcc_consume_token(DEFCLASS); switch ((mcc_ntk == -1) ? mcc_mntk() : mcc_ntk) { case LBRACE: case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: case BIND: case BIND3: case BIND4: case TRUE: case TRUE2: case FALSE: case FALSE2: case IDENTIFIER: case PATH_LITERAL: while (true) { valueParams(list); switch ((mcc_ntk == -1) ? mcc_mntk() : mcc_ntk) { case LBRACE: case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: case BIND: case BIND3: case BIND4: case TRUE: case TRUE2: case FALSE: case FALSE2: case IDENTIFIER: case PATH_LITERAL: ; break; default: mcc_la1[6] = mcc_gen; goto label_4; } } label_4: ; break; default: mcc_la1[7] = mcc_gen; ; break; } func = new ShellFunction(); func.Name = exp.image; func.setParameters(ParameterUtils.convertParameters(list)); list.Clear(); { if (true) return func; } break; case DEFFUNCTION: exp = mcc_consume_token(DEFFUNCTION); exp2 = mcc_consume_token(IDENTIFIER); mcc_consume_token(LBRACE); switch ((mcc_ntk == -1) ? mcc_mntk() : mcc_ntk) { case BIND: case BIND3: case BIND4: while (true) { bindingParams(list); switch ((mcc_ntk == -1) ? mcc_mntk() : mcc_ntk) { case BIND: case BIND3: case BIND4: ; break; default: mcc_la1[8] = mcc_gen; goto label_5; } } label_5: ; break; default: mcc_la1[9] = mcc_gen; ; break; } mcc_consume_token(RBRACE); mcc_consume_token(LBRACE); switch ((mcc_ntk == -1) ? mcc_mntk() : mcc_ntk) { case BINDING: case ASSERT: case ASSERTTEMPORAL: case DEFCLASS: case DEFFUNCTION: case DEFMODULE: case DEFRULE: case DEFTEMPLATE: case MODIFY: case RETRACT: case PLUS: case MINUS: case MULTIPLY: case DIVIDE: case GT1: case GT2: case LT1: case LT2: case EQ1: case EQ2: case LE1: case LE2: case GE1: case GE2: case IDENTIFIER: ruleAction(infunc); break; default: mcc_la1[10] = mcc_gen; ; break; } mcc_consume_token(RBRACE); dffunc = new DeffunctionFunction(); dffunc.Name = exp2.image; dffunc.setParameters(ParameterUtils.convertParameters(list)); dffunc.Function = (infunc); list.Clear(); { if (true) return dffunc; } break; case BINDING: mcc_consume_token(BINDING); exp = getBindType(); while (true) { valueParams(list); switch ((mcc_ntk == -1) ? mcc_mntk() : mcc_ntk) { case LBRACE: case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: case BIND: case BIND3: case BIND4: case TRUE: case TRUE2: case FALSE: case FALSE2: case IDENTIFIER: case PATH_LITERAL: ; break; default: mcc_la1[11] = mcc_gen; goto label_6; } } label_6: ; func = new ShellFunction(); func.Name = "bind"; list.Insert(0, new ValueParam(Constants.STRING_TYPE, exp.image.Substring(1))); func.setParameters(ParameterUtils.convertParameters(list)); list.Clear(); { if (true) return func; } break; case PLUS: case MINUS: case MULTIPLY: case DIVIDE: case GT1: case GT2: case LT1: case LT2: case EQ1: case EQ2: case LE1: case LE2: case GE1: case GE2: switch ((mcc_ntk == -1) ? mcc_mntk() : mcc_ntk) { case PLUS: exp = mcc_consume_token(PLUS); break; case MINUS: exp = mcc_consume_token(MINUS); break; case MULTIPLY: exp = mcc_consume_token(MULTIPLY); break; case DIVIDE: exp = mcc_consume_token(DIVIDE); break; case GT1: exp = mcc_consume_token(GT1); break; case GT2: exp = mcc_consume_token(GT2); break; case LT1: exp = mcc_consume_token(LT1); break; case LT2: exp = mcc_consume_token(LT2); break; case EQ1: exp = mcc_consume_token(EQ1); break; case EQ2: exp = mcc_consume_token(EQ2); break; case LE1: exp = mcc_consume_token(LE1); break; case LE2: exp = mcc_consume_token(LE2); break; case GE1: exp = mcc_consume_token(GE1); break; case GE2: exp = mcc_consume_token(GE2); break; default: mcc_la1[12] = mcc_gen; mcc_consume_token(-1); throw new ParseException(); } while (true) { valueParams(list); switch ((mcc_ntk == -1) ? mcc_mntk() : mcc_ntk) { case LBRACE: case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: case BIND: case BIND3: case BIND4: case TRUE: case TRUE2: case FALSE: case FALSE2: case IDENTIFIER: case PATH_LITERAL: ; break; default: mcc_la1[13] = mcc_gen; goto label_7; } } label_7: ; func = new ShellFunction(); func.Name = exp.image; func.setParameters(ParameterUtils.convertParameters(list)); list.Clear(); { if (true) return func; } break; case IDENTIFIER: exp = mcc_consume_token(IDENTIFIER); switch ((mcc_ntk == -1) ? mcc_mntk() : mcc_ntk) { case LBRACE: case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: case BIND: case BIND3: case BIND4: case TRUE: case TRUE2: case FALSE: case FALSE2: case IDENTIFIER: case PATH_LITERAL: while (true) { valueParams(list); switch ((mcc_ntk == -1) ? mcc_mntk() : mcc_ntk) { case LBRACE: case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: case BIND: case BIND3: case BIND4: case TRUE: case TRUE2: case FALSE: case FALSE2: case IDENTIFIER: case PATH_LITERAL: ; break; default: mcc_la1[14] = mcc_gen; goto label_8; } } label_8: ; break; default: mcc_la1[15] = mcc_gen; ; break; } func = new ShellFunction(); func.Name = exp.image; func.setParameters(ParameterUtils.convertParameters(list)); list.Clear(); { if (true) return func; } break; default: mcc_la1[16] = mcc_gen; mcc_consume_token(-1); throw new ParseException(); } throw new Exception("Missing return statement in function"); }