ParseTopLevelStatement() private method

Parse top level statement. Must be message, enum, service, extend, import, package or option.
private ParseTopLevelStatement ( ) : void
return void
コード例 #1
0
        public void ParseOneOf_NOK01()
        {
            const string Text = "  oneof oneof_name {\r\n  string url = 2;\r\n  string title = 3;\r\n  msg1 snippets = 4;\r\n}";

            var lex = new Lexer(Text) { Matches = Helper.SplitText(Text) };

            lex.ParseTopLevelStatement();

            Assert.AreEqual(0, lex.Tokens.Count);
            Assert.AreEqual(1, lex.Errors.Count);
            Assert.AreEqual(1, lex.Index);
        }
コード例 #2
0
        public void ParseTopLevel_OK07()
        {
            const string text = "  option abc = true;";

              var lex = new Lexer(text) { Matches = Helper.SplitText(text) };

              lex.ParseTopLevelStatement();

              Assert.AreEqual(3, lex.Tokens.Count);
              Assert.AreEqual(0, lex.Errors.Count);
              Assert.AreEqual(5, lex.Index);
        }
コード例 #3
0
        public void ParseTopLevel_OK06()
        {
            const string text = "  package asdf.sdf.sf;\r\n";

              var lex = new Lexer(text) { Matches = Helper.SplitText(text) };

              lex.ParseTopLevelStatement();

              Assert.AreEqual(4, lex.Tokens.Count);
              Assert.AreEqual(0, lex.Errors.Count);
              Assert.AreEqual(8, lex.Index);
        }
コード例 #4
0
        public void ParseTopLevel_OK05()
        {
            const string text = "  import \"lkjlkjlkj\";";

              var lex = new Lexer(text) { Matches = Helper.SplitText(text) };

              lex.ParseTopLevelStatement();

              Assert.AreEqual(2, lex.Tokens.Count);
              Assert.AreEqual(0, lex.Errors.Count);
              Assert.AreEqual(5, lex.Index);
        }
コード例 #5
0
        public void ParseTopLevel_OK04()
        {
            const string text = "  extend test\r\n  {\r\n optional int32 abc = 12;\r\n}\r\n";

              var lex = new Lexer(text) { Matches = Helper.SplitText(text) };

              lex.ParseTopLevelStatement();

              Assert.AreEqual(6, lex.Tokens.Count);
              Assert.AreEqual(0, lex.Errors.Count);
              Assert.AreEqual(14, lex.Index);
        }
コード例 #6
0
        public void ParseTopLevel_OK03()
        {
            const string text = "  service test\r\n  {\r\n rpc test1 (test2) returns (test3);\r\n}\r\n";

              var lex = new Lexer(text) { Matches = Helper.SplitText(text) };

              lex.ParseTopLevelStatement();

              Assert.AreEqual(7, lex.Tokens.Count);
              Assert.AreEqual(0, lex.Errors.Count);
              Assert.AreEqual(18, lex.Index);
        }
コード例 #7
0
        public void ParseTopLevel_OK02()
        {
            const string text = "  enum test\r\n  {\r\n  a=1;\r\n  b=2;\r\n}\r\n";

              var lex = new Lexer(text) { Matches = Helper.SplitText(text) };

              lex.ParseTopLevelStatement();

              Assert.AreEqual(6, lex.Tokens.Count);
              Assert.AreEqual(0, lex.Errors.Count);
              Assert.AreEqual(17, lex.Index);
        }
コード例 #8
0
        public void ParseTopLevel_OK01()
        {
            const string text = "  message SearchResponse {\r\n  required string url = 2;\r\n  optional string title = 3;\r\n  repeated string snippets = 4;\r\n}\r\n";

              var lex = new Lexer(text) { Matches = Helper.SplitText(text) };

              lex.ParseTopLevelStatement();

              Assert.AreEqual(14, lex.Tokens.Count);
              Assert.AreEqual(0, lex.Errors.Count);
              Assert.AreEqual(27, lex.Index);
        }