Example #1
0
 public TNode(TNode Parent, MemoryStruct Heap)
 {
     this._Parent = Parent;
     this._Children = new List<TNode>();
     this._Heap = Heap;
     this._reg = null;
 }
Example #2
0
 public FNodeDynamicRef(FNode Parent, FNode Index, CellAffinity Affinity, Register MemoryRef)
     : base(Parent, FNodeAffinity.FieldRefNode)
 {
     this._idx = Index;
     this._affinity = Affinity;
     this._memory = MemoryRef;
 }
Example #3
0
 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;
 }
Example #4
0
 public void AssignNullRegister(Register Register)
 {
     foreach (TNode t in _tree)
     {
         if (t.InnerRegister == null)
             t.InnerRegister = Register;
     }
 }
Example #5
0
 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);
 }
Example #6
0
 // Fields //
 public static FNode Field(int Index, CellAffinity Type, int Size, Register Memory)
 {
     return new FNodeFieldRef(null, Index, Type, Size, Memory);
 }
Example #7
0
 public void AssignRegister(Register Memory)
 {
     foreach (FNode n in this._Nodes)
         n.AssignRegister(Memory);
 }
Example #8
0
 public override void AssignRegister(Register Memory)
 {
     this._memory = Memory;
 }
Example #9
0
 public void AssignRegister(Register Register)
 {
     foreach (TNode t in _tree)
         t.InnerRegister = Register;
 }
Example #10
0
 public virtual void AssignRegister(Register Memory)
 {
     this._F.Node.AssignRegister(Memory);
 }
Example #11
0
 // Virtuals //
 public virtual void AssignRegister(Register Memory)
 { 
     // do something 
 }
Example #12
0
 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);
 }
Example #13
0
        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);

        }
Example #14
0
        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);

        }