/// <summary> /// Visit a parse tree produced by <see cref="Generated.Z80AsmParser.symbolExpr"/>. /// </summary> /// <param name="context">The parse tree.</param> /// <return>The visitor result.</return> public override object VisitSymbolExpr(Z80AsmParser.SymbolExprContext context) { if (IsInvalidContext(context)) { return(null); } _identifiers.Add(new TextSpan(context.Start.StartIndex, context.Start.StopIndex + 1)); return(new IdentifierNode { SymbolName = context.GetChild(0).NormalizeToken() }); }
/// <summary> /// Visit a parse tree produced by <see cref="Generated.Z80AsmParser.symbolExpr"/>. /// </summary> /// <param name="context">The parse tree.</param> /// <return>The visitor result.</return> public override object VisitSymbolExpr(Z80AsmParser.SymbolExprContext context) { if (context == null || context.ChildCount == 0 || context.IDENTIFIER().Length == 0) { return(null); } AddIdentifier(context); return(new IdentifierNode { StartFromGlobal = context.GetChild(0).GetText() == "::", SymbolName = context.IDENTIFIER()[0].NormalizeToken(), ScopeSymbolNames = context.IDENTIFIER().Skip(1).Select(i => i.NormalizeToken()).ToList() }); }
/// <summary> /// Visit a parse tree produced by <see cref="Z80AsmParser.symbolExpr"/>. /// <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 VisitSymbolExpr([NotNull] Z80AsmParser.SymbolExprContext context) { return(VisitChildren(context)); }
/// <summary> /// Exit a parse tree produced by <see cref="Z80AsmParser.symbolExpr"/>. /// <para>The default implementation does nothing.</para> /// </summary> /// <param name="context">The parse tree.</param> public virtual void ExitSymbolExpr([NotNull] Z80AsmParser.SymbolExprContext context) { }
/// <summary> /// Gets a symbol from the specified context /// </summary> /// <param name="context">Context to get the symbol from</param> /// <returns>Node that represents the symbol</returns> public IdentifierNode GetSymbol(Z80AsmParser.SymbolExprContext context) { return((IdentifierNode)VisitSymbolExpr(context)); }