Exemple #1
0
        private static IExpression ParseBlockOrTupleList(IdentifierToken name, IEnumerator <Token> tokenStream)
        {
            var token = tokenStream.GetNext();

            return(token switch
            {
                OpenBraceToken ob => ParseIntTupleList(name, ob.Location, tokenStream),
                CloseBraceToken _ => new Block(name, ImmutableArray <Assignment> .Empty),
                IdentifierToken i => ParseBlock(name, i, tokenStream),
                _ => throw ParsingException.CreateError(token, "identifier, end of block, or start of tuple"),
            });
Exemple #2
0
        public override void Accept(SyntaxVisitor visitor)
        {
            StrictKeyword.Accept(visitor);
            GraphTypeKeyword.Accept(visitor);
            IdentifierToken.Accept(visitor);
            OpenBraceToken.Accept(visitor);

            foreach (var statement in Statements)
            {
                statement.Accept(visitor);
            }

            CloseBraceToken.Accept(visitor);
        }
        public override void Accept(SyntaxVisitor visitor)
        {
            if (visitor.VisitSubgraphStatementSyntax(this, VisitKind.Enter))
            {
                GraphTypeKeyword.Accept(visitor);
                IdentifierToken.Accept(visitor);
                OpenBraceToken.Accept(visitor);

                foreach (var statement in Statements)
                {
                    statement.Accept(visitor);
                }

                CloseBraceToken.Accept(visitor);
                TerminatingSemicolonToken.Accept(visitor);

                visitor.VisitSubgraphStatementSyntax(this, VisitKind.Leave);
            }
        }