public override int VisitExpression([NotNull] CBluntParser.ExpressionContext context) { #if DEBUG Console.WriteLine("VisitExpression"); #endif var parameter = context.parameter(); var assignmentType = GetParameterType(context, parameter); if (!AddToExpressionStore(assignmentType)) { return(1); } var calculationCount = context.calculation().Count(); // With no calculations, it is simply the assignment type if (calculationCount == 0) { SymbolTable.ExpressionStoreLinkedList.Last.Value.Type = assignmentType; return(0); } for (int i = 0; i < calculationCount; ++i) { if (Visit(context.calculation(i)) == 1) { return(1); } } return(0); }
public override int VisitExpression([NotNull] CBluntParser.ExpressionContext context) { #if DEBUG Console.WriteLine("VisitExpression"); #endif Visit(context.parameter()); for (int counter = 0; counter < context.calculation().Count(); ++counter) { Visit(context.calculation(counter)); } return(0); }
/// <summary> /// Visit a parse tree produced by <see cref="CBluntParser.expression"/>. /// <para> /// The default implementation returns the result of calling <see cref="AbstractParseTreeVisitor{Result}.VisitChildren(IRuleNode)"/> /// on <paramref name="context"/>. /// </para> /// </summary> /// <param name="context">The parse tree.</param> /// <return>The visitor result.</return> public virtual Result VisitExpression([NotNull] CBluntParser.ExpressionContext context) { return(VisitChildren(context)); }