예제 #1
0
        protected override bool Visit(ASTDeclaration node)
        {
            // This should be safe, if we did typechecking correct
            var type = (TypeType)node.DeclaredType.TypeInfo;

            _lastNode = new CDeclaration {
                Name = GetVariableName(node.Name), Type = GetCType(type.Type)
            };
            return(true);
        }
예제 #2
0
파일: AST.cs 프로젝트: SA-Root/VinewoodCC
 public ASTIterationDeclaredStatement(ASTDeclaration init,
                                      List <ASTNode> cond,
                                      List <ASTNode> step,
                                      ASTStatement stat) : base("IterationDeclaredStatement")
 {
     Initilize = init;
     Condition = cond;
     Step      = step;
     Stat      = stat;
 }
예제 #3
0
        protected override bool Visit(ASTDeclaration node)
        {
            if (!Visit(node.DeclaredType))
            {
                return(false);
            }

            node.TypeInfo = node.DeclaredType.TypeInfo;

            if (_scope.TryAddSymbol(node.Name, node.TypeInfo))
            {
                return(true);
            }

            Error(node.Position, "");
            return(false);
        }
예제 #4
0
 public bool Visit(ASTDeclaration node)
 {
     throw new NotImplementedException();
 }
예제 #5
0
 protected abstract bool Visit(ASTDeclaration node);