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"), });
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); } }