Exemple #1
0
            public COWValueInternal(ASTVisitorContext visitorContext, SymbolDefinition symbol)
            {
                this.symbol         = this.originalSymbol = symbol;
                this.visitorContext = visitorContext;

                tableCreationScope = visitorContext.topTable;
            }
        public ClassVisitor(ResolverContext resolver, SymbolTable rootTable, LabelTable labelTable)
            : base(SyntaxWalkerDepth.Node)
        {
            visitorContext = new ASTVisitorContext(resolver, rootTable, labelTable);
            methodVisitor  = new MethodVisitor(resolver, rootTable, labelTable);

            classDefinition = new ClassDefinition();
        }
Exemple #3
0
        public COWValue GetCOWValue(ASTVisitorContext visitorContext)
        {
            if (cowValue != null)
            {
                if (cowValue.visitorContext != visitorContext)
                {
                    // Hmm... new compilation context? Dirty it and get a new one.
                    cowValue.MarkDirty();
                    cowValue = null;
                }
                else if (cowValue.isDirty || cowValue.referenceCount == 0)
                {
                    // If the reference count is 0, we've probably moved scopes. We clear out the cowValue here to make sure that a cowValue is only used in one scope at a time.
                    cowValue = null;
                }
                else
                {
                    return(new COWValue(cowValue));
                }
            }

            cowValue = new COWValueInternal(visitorContext, this);
            return(new COWValue(cowValue));
        }
Exemple #4
0
 public UdonSharpSyntaxWalker(UdonSharpSyntaxWalkerDepth depth, ResolverContext resolver, SymbolTable rootTable, LabelTable labelTable, ClassDebugInfo classDebugInfo = null)
     : base(SyntaxWalkerDepth.Node)
 {
     syntaxWalkerDepth = depth;
     visitorContext    = new ASTVisitorContext(resolver, rootTable, labelTable, classDebugInfo);
 }
 public InternalMethodHandler(ASTVisitorContext visitorContextIn, ExpressionCaptureScope captureScopeIn)
 {
     visitorContext = visitorContextIn;
     captureScope   = captureScopeIn;
 }
 public NamespaceVisitor(ResolverContext resolverIn)
 {
     resolver       = resolverIn;
     visitorContext = new ASTVisitorContext(resolver, new SymbolTable(resolver, null), new LabelTable());
 }
 public MethodVisitor(ResolverContext resolver, SymbolTable rootTable, LabelTable labelTable)
     : base(SyntaxWalkerDepth.Node)
 {
     visitorContext = new ASTVisitorContext(resolver, rootTable, labelTable);
 }