예제 #1
0
파일: ParserTests.cs 프로젝트: luqp/Nova
        public static ExpressionSyntax ParseExpression(string text)
        {
            SyntaxTree            syntaxTree      = SyntaxTree.Parse(text);
            CompilationUnitSyntax root            = syntaxTree.Root;
            MemberSyntax          member          = Assert.Single(root.Members);
            GlobalStatementSyntax globalStatement = Assert.IsType <GlobalStatementSyntax>(member);

            return(Assert.IsType <ExpressionStatementSyntax>(globalStatement.Statement).Expression);
        }
예제 #2
0
파일: Parser.cs 프로젝트: luqp/Nova
        private ImmutableArray <MemberSyntax> ParseMembers()
        {
            var members = ImmutableArray.CreateBuilder <MemberSyntax>();

            while (Current.Kind != SyntaxKind.EndOfFileToken)
            {
                SyntaxToken  startToken = Current;
                MemberSyntax member     = ParseMember();
                members.Add(member);

                if (Current == startToken)
                {
                    NextToken();
                }
            }

            return(members.ToImmutable());
        }