コード例 #1
0
        // var -> ptr
        public override object VisitPtrDecl([NotNull] SLangGrammarParser.PtrDeclContext context)
        {
            var type = Visit(context.ptrType()) as SlangType;
            var name = context.Id();

            ThrowIfReservedWord(name.GetText(), ModuleData.File, name.Symbol);
            return(new VariableNameTableItem {
                IsConstant = false, Type = type, Column = name.Symbol.Column, Line = name.Symbol.Line, Name = name.GetText()
            });
        }
コード例 #2
0
        public override object VisitPtrDecl([NotNull] SLangGrammarParser.PtrDeclContext context)
        {
            var type      = Visit(context.ptrType()) as SlangType;
            var nameToken = context.Id().Symbol;
            var res       = new VariableNameTableItem {
                Type = type, IsConstant = false, Column = nameToken.Column, Line = nameToken.Line, Name = nameToken.Text
            };

            PutVariableIfInBlock(res);
            TranslateDeclare(res, context.exp());
            return(null);
        }
コード例 #3
0
 /// <summary>
 /// Exit a parse tree produced by <see cref="SLangGrammarParser.ptrDecl"/>.
 /// <para>The default implementation does nothing.</para>
 /// </summary>
 /// <param name="context">The parse tree.</param>
 public virtual void ExitPtrDecl([NotNull] SLangGrammarParser.PtrDeclContext context)
 {
 }
コード例 #4
0
 /// <summary>
 /// Visit a parse tree produced by <see cref="SLangGrammarParser.ptrDecl"/>.
 /// <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 VisitPtrDecl([NotNull] SLangGrammarParser.PtrDeclContext context)
 {
     return(VisitChildren(context));
 }