コード例 #1
0
        public override AbstractNode VisitPopOP([NotNull] GiraphParser.PopOPContext context)
        {
            PopQueryNode PopNode = new PopQueryNode(context.Start.Line, context.Start.Column);

            PopNode.Variable = context.variable().GetText();
            PopNode.Name     = PopNode.Variable;
            return(PopNode);
        }
コード例 #2
0
        public override void Visit(PopQueryNode node)
        {
            _symbolTable.SetCurrentNode(node);
            checkCollectionFollowsCollection(node.Variable);
            AllType CollectionType = _symbolTable.RetrieveSymbol(node.Variable, out bool isCollection) ?? AllType.UNKNOWNTYPE;

            if (!isCollection)
            {
                _symbolTable.ExpectedCollection();
                return;
            }
            node.Type = CollectionType.ToString().ToLower();
        }
コード例 #3
0
 public override void Visit(PopQueryNode node)
 {
     Debug.Print("PopNode");
     ProgramCode.Append($"POP FROM {node.Variable}");
     ProgramCode.Append(");\n");
 }
コード例 #4
0
 public override void Visit(PopQueryNode node)
 {
     SymbolTable.SetCurrentNode(node);
     CheckDeclared(node.Variable);
 }
コード例 #5
0
 public abstract void Visit(PopQueryNode node);