private PassSyntax ParseUnityPass() { var passKeyword = Match(SyntaxKind.PassKeyword); var openBraceToken = Match(SyntaxKind.OpenBraceToken); var statements = new List <SyntaxNode>(); var shouldContinue = true; while (shouldContinue && Current.Kind != SyntaxKind.CloseBraceToken) { switch (Current.Kind) { case SyntaxKind.TagsKeyword: statements.Add(ParseUnityShaderTags()); break; case SyntaxKind.NameKeyword: statements.Add(ParseUnityName()); break; default: shouldContinue = TryParseStateProperty(statements); break; } } CgProgramSyntax cgProgram = null; if (Current.Kind == SyntaxKind.CgProgramKeyword) { cgProgram = ParseUnityCgProgram(); } var closeBraceToken = Match(SyntaxKind.CloseBraceToken); return(new PassSyntax( passKeyword, openBraceToken, statements, cgProgram, closeBraceToken)); }
public virtual void VisitCgProgram(CgProgramSyntax node) { DefaultVisit(node); }
public override void VisitCgProgram(CgProgramSyntax node) { throw new NotImplementedException(); //CgBlockSpans.Add(new Span(node.CgProgramKeyword.Span.End, node.EndCgKeyword.Span.Start - node.CgProgramKeyword.Span.End)); }
public override void VisitCgProgram(CgProgramSyntax node) { AddBlockSpan(node.CgProgramKeyword, node.EndCgKeyword); }