Пример #1
0
        public override void Visit(SelectAllQueryNode node)
        {
            _symbolTable.SetCurrentNode(node);
            checkCollectionFollowsCollection(node.Variable);
            AllType?collectionNameType = _symbolTable.RetrieveSymbol(node.Variable, out bool isCollectionInQuery, false);
            bool    fromIsColl         = isCollectionInQuery;

            if (fromIsColl)
            {
                if (node.Parent is DeclarationNode dclNode)
                {
                    node.Type = collectionNameType.ToString();
                    node.Name = node.Variable;
                }
                else if (node.Parent is ExpressionNode expNode)
                {
                    // extractmin 'length' from selectall from asdf where () where ()
                    node.Type = collectionNameType.ToString();
                    //expNode.QueryName = node.Variable;
                    expNode.OverAllType = collectionNameType;
                    expNode.Name        = node.Variable;
                }
            }
            else
            {
                _symbolTable.FromVarIsNotCollError(node.Variable);
            }
            if (node.WhereCondition != null)
            {
                node.WhereCondition.Accept(this);
            }
        }
 public override void Visit(SelectAllQueryNode node)
 {
     SymbolTable.SetCurrentNode(node);
     CheckDeclared(node.Variable);
     if (node.WhereCondition != null)
     {
         var type = SymbolTable.RetrieveSymbol(node.Variable);
         (node.WhereCondition as WhereNode).AttributeClass = type ?? default(AllType);
         node.WhereCondition.Accept(this);
     }
 }
 public override void Visit(SelectAllQueryNode node)
 {
     ProgramCode.Append("SELECTALL ");
     //ProgramCode.Append(node.Type);
     ProgramCode.Append("FROM");
     ProgramCode.Append(node.Variable);
     if (node.WhereCondition != null)
     {
         node.WhereCondition.Accept(this);
     }
     ProgramCode.Append(";\n");
 }
Пример #4
0
        public override AbstractNode VisitSelectAll([NotNull] GiraphParser.SelectAllContext context)
        {
            SelectAllQueryNode SelectNode = new SelectAllQueryNode(context.Start.Line, context.Start.Column);

            SelectNode.Type     = getContextType(context.variable());
            SelectNode.Variable = context.variable().GetText();
            SelectNode.Name     = SelectNode.Variable;
            if (context.where () != null)
            {
                SelectNode.WhereCondition = Visit(context.where ());
            }
            return(SelectNode);
        }
Пример #5
0
 public abstract void Visit(SelectAllQueryNode node);