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(); }
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)); }
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); }