public override void ExitFun([NotNull] ClojureObrParser.FunContext context) { // int childsCount = context.children.Count; List <SymNode> paramNodes = new List <SymNode>(); for (int i = 3; i < childsCount - 3; i++) { paramNodes.Add((SymNode)TypedNodes.Get(context.children[i])); } var exprNodes = (ExpressionsNode)TypedNodes.Get(context.children[childsCount - 2]); int exprCount = exprNodes.expressions.Count; var lastExpr = exprNodes.expressions[exprCount - 1]; var exprMid = exprNodes.expressions.SkipLast(1).ToList(); FunNode node = new FunNode(paramNodes, lastExpr, exprMid); TypedNodes.Put(context, node); }
public override void EnterFun([NotNull] ClojureObrParser.FunContext context) { // ExprSymTypes.Put(context, SymType.Fun); }