public TNode(TNode Parent, MemoryStruct Heap) { this._Parent = Parent; this._Children = new List<TNode>(); this._Heap = Heap; this._reg = null; }
public FNodeDynamicRef(FNode Parent, FNode Index, CellAffinity Affinity, Register MemoryRef) : base(Parent, FNodeAffinity.FieldRefNode) { this._idx = Index; this._affinity = Affinity; this._memory = MemoryRef; }
public FNodeFieldRef(FNode Parent, int Index, CellAffinity Affinity, int FSize, Register MemoryRef) : base(Parent, FNodeAffinity.FieldRefNode) { this._idx = Index; this._affinity = Affinity; this._memory = MemoryRef; this._size = FSize; }
public void AssignNullRegister(Register Register) { foreach (TNode t in _tree) { if (t.InnerRegister == null) t.InnerRegister = Register; } }
public static FNode Field(Schema Columns, string Name, Register Memory) { int idx = Columns.ColumnIndex(Name); return Field(idx, Columns.ColumnAffinity(idx), Columns.ColumnSize(idx), Memory); }
// Fields // public static FNode Field(int Index, CellAffinity Type, int Size, Register Memory) { return new FNodeFieldRef(null, Index, Type, Size, Memory); }
public void AssignRegister(Register Memory) { foreach (FNode n in this._Nodes) n.AssignRegister(Memory); }
public override void AssignRegister(Register Memory) { this._memory = Memory; }
public void AssignRegister(Register Register) { foreach (TNode t in _tree) t.InnerRegister = Register; }
public virtual void AssignRegister(Register Memory) { this._F.Node.AssignRegister(Memory); }
// Virtuals // public virtual void AssignRegister(Register Memory) { // do something }
public static Predicate ParsePredicate(string Text, MemoryStruct LocalHeap, Workspace Home, string Alias, Schema Columns, Register Memory) { FNode node = ExpressionFactory.ParseFNode(Text, LocalHeap, Home, Alias, Columns, Memory); return new Predicate(node); }
public static FNode ParseFNode(string Text, MemoryStruct LocalHeap, Workspace Home, string Alias, Schema Columns, Register Memory) { // Build text stream // AntlrInputStream ais = new AntlrInputStream(Text); HScriptLexer lex = new HScriptLexer(ais); // Build token tree // CommonTokenStream cts = new CommonTokenStream(lex); HScriptParser par = new HScriptParser(cts); // Build AST // IParseTree tree = par.expression(); // Visit each node getting the final node // ExpressionVisitor v = new ExpressionVisitor(LocalHeap, Home); v.AddSchema(Alias, Columns, Memory); return v.Visit(tree); }
public static FNodeSet ParseFNodeSet(string Text, MemoryStruct LocalHeap, Workspace Home, string Alias, Schema Columns, Register Memory) { // Build text stream // AntlrInputStream ais = new AntlrInputStream(Text); HScriptLexer lex = new HScriptLexer(ais); // Build token tree // CommonTokenStream cts = new CommonTokenStream(lex); HScriptParser par = new HScriptParser(cts); // Build AST // IParseTree tree = par.expression_alias_list(); if (tree == null) tree = par.expression_or_wildcard_set(); // Visit each node getting the final node // ExpressionVisitor v = new ExpressionVisitor(LocalHeap, Home); v.AddSchema(Alias, Columns, Memory); if (tree is HScriptParser.Expression_or_wildcard_setContext) { HScriptParser.Expression_or_wildcard_setContext a = tree as HScriptParser.Expression_or_wildcard_setContext; return VisitorHelper.GetReturnStatement(v, a); } else if (tree is HScriptParser.Expression_alias_listContext) { HScriptParser.Expression_alias_listContext b = tree as HScriptParser.Expression_alias_listContext; return v.ToNodes(b); } throw new Exception("Expression is not an expression set: " + Text); }