public void CanParseVariableDeclaration()
        {
            var    varName = "myVar";
            string payload = DeclarationMaker.SimpleIntVar(varName);
            var    parser  = TestUtils.SetupParser(payload);
            var    context = parser.declaration();

            Assert.IsNull(context.exception);
            var declarators = context.declaratorlist();

            Assert.IsNotNull(declarators);
            Assert.IsNotNull(context.Semicolon());
            Assert.AreEqual(GLSL_ES300Lexer.Semicolon, context.Semicolon().Symbol.Type);
            var declarator = declarators.declarator();

            Assert.IsNotNull(declarator);
            var type = declarator.fully_specified_type();

            Assert.NotNull(type);
            var typeSpec = type.type_specifier_nonarray();

            Assert.NotNull(typeSpec);
            var intT = typeSpec.Int_type();

            Assert.NotNull(intT);

            var id = declarator.Identifier();

            Assert.NotNull(id);
            Assert.AreEqual(varName, id.Symbol.Text);
        }
        public void CanParseExternalDeclarationList()
        {
            var    varName = "a";
            string payload = DeclarationMaker.SimpleIntVar(varName);
            var    parser  = TestUtils.SetupParser(payload);
            var    context = parser.external_declaration_list();

            Assert.IsNull(context.exception);
            var declarations = context.external_declaration();

            Assert.IsNotNull(declarations);
            var d           = declarations;
            var declaration = d.declaration();

            Assert.NotNull(declaration);
            var dList = declaration.declaratorlist();

            Assert.NotNull(dList);
            var declarator = dList.declarator();

            Assert.NotNull(declarator);
            var type = declarator.fully_specified_type();

            Assert.NotNull(type);
            var typeSpec = type.type_specifier_nonarray();

            Assert.NotNull(typeSpec);
            var intT = typeSpec.Int_type();

            Assert.NotNull(intT);

            var id = declarator.Identifier();

            Assert.NotNull(id);
            Assert.AreEqual(varName, id.Symbol.Text);
        }