コード例 #1
0
ファイル: AsmListener.cs プロジェクト: sokoide/vm1
        public override void ExitLabelStmt([NotNull] AsmParser.LabelStmtContext context)
        {
            Util.WriteLine("* ExitLabelStmt: {0}", context.LABEL());

            string label     = context.LABEL().GetText();
            int    labelAddr = ip;

            labeltable[label] = labelAddr;
            if (deferedLabelTable.ContainsKey(label))
            {
                foreach (int targetAddr in deferedLabelTable[label])
                {
                    UpdateInt32Code(targetAddr, labelAddr);
                }
                deferedLabelTable.Remove(label);
            }
        }
コード例 #2
0
ファイル: AsmBaseListener.cs プロジェクト: sokoide/vm1
	/// <summary>
	/// Exit a parse tree produced by the <c>labelStmt</c>
	/// labeled alternative in <see cref="AsmParser.stmt"/>.
	/// <para>The default implementation does nothing.</para>
	/// </summary>
	/// <param name="context">The parse tree.</param>
	public virtual void ExitLabelStmt([NotNull] AsmParser.LabelStmtContext context) { }