public static Jint_Function jintFunction(this Jint_Visitor jintVisitor, MethodCall methodCall) { var jintFunction = new Jint_Function(); var previous = jintVisitor.previous_All <Identifier>(methodCall); if (previous.size() > 0) { jintFunction.Name = previous.first().Text; previous.Reverse(); var className = ""; foreach (var item in previous) { className = "{0}.{1}".format(className, item.Text); } className = className.removeFirstChar(); jintFunction.Class = className; } else { jintFunction.Name = "[anonymous]"; } jintFunction.Arguments = methodCall.Arguments; //foreach(var argument in methodCall.Arguments) // jintFunction.Arguments.Add(argument.str()); return(jintFunction); }
public static Jint_Visitor map <T>(this Jint_Visitor jintVisitor, T statement) where T : Statement { jintVisitor.RootStatement = statement; statement.Accept(jintVisitor); return(jintVisitor); }
public static string name(this Jint_Visitor jintVisitor, MethodCall methodCall) { var previous = jintVisitor.previous(methodCall); return(previous.notNull() ? previous.str() : null); }
public static List <MethodCall> methods(this Jint_Visitor jintVisitor) { if (jintVisitor.Statements_byType.hasKey("MethodCall")) { return(jintVisitor.Statements_byType["MethodCall"].Cast <MethodCall>().toList()); } return(new List <MethodCall>()); }
public static Statement previous(this Jint_Visitor jintVisitor, Statement startStatement) { var match = jintVisitor.previous(startStatement, false); if (match.notNull() && match.size() > 0) { return(match[0]); } return(null); }
public static List <Statement> previous(this Jint_Visitor jintVisitor, Statement startStatement, bool recursiveSearch) { if (recursiveSearch) { return(jintVisitor.previous_All(startStatement)); } if (jintVisitor.PreviousMappings.hasKey(startStatement)) { return(jintVisitor.PreviousMappings[startStatement].wrapOnList()); } ; return(null); }
public static List <T> previous_All <T>(this Jint_Visitor jintVisitor, Statement startStatement, Type untilStatement) where T : Statement { var allPrevious = new List <T>(); var previous = jintVisitor.previous(startStatement); while (previous.notNull()) { if (untilStatement.notNull() && previous.type() == untilStatement) { break; } if (previous is T) { allPrevious.add((T)previous); } previous = jintVisitor.previous(previous); } return(allPrevious); }
public static List <T> previous_All_Until <T, T1>(this Jint_Visitor jintVisitor, Statement startStatement) where T : Statement where T1 : Statement { return(jintVisitor.previous_All <T>(startStatement, typeof(T1))); }
public static List <T> previous_All <T>(this Jint_Visitor jintVisitor, Statement startStatement) where T : Statement { return(jintVisitor.previous_All <T>(startStatement, null)); }
public static List <Statement> previous_All(this Jint_Visitor jintVisitor, Statement startStatement) { return(jintVisitor.previous_All <Statement>(startStatement)); }