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