public override ASTNode VisitArraySize([NotNull] DaedalusParser.ArraySizeContext context) { if (context.reference() != null) { return(VisitReference(context.reference())); } return(new IntegerLiteralNode(GetLocation(context), long.Parse(context.GetText()))); }
public static int EvaluteArraySize(DaedalusParser.ArraySizeContext context, AssemblyBuilder assemblyBuilder) { string arraySizeText = context.GetText(); // simple value if (int.TryParse(context.GetText(), out var arraySize) == false) { arraySize = (int)assemblyBuilder.GetSymbolByName(arraySizeText).Content.First(); } return(arraySize); }
/// <summary> /// Visit a parse tree produced by <see cref="DaedalusParser.arraySize"/>. /// <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 VisitArraySize([NotNull] DaedalusParser.ArraySizeContext context) { return(VisitChildren(context)); }
/// <summary> /// Exit a parse tree produced by <see cref="DaedalusParser.arraySize"/>. /// <para>The default implementation does nothing.</para> /// </summary> /// <param name="context">The parse tree.</param> public virtual void ExitArraySize([NotNull] DaedalusParser.ArraySizeContext context) { }