| 305 | )"; |
| 306 | |
| 307 | void expectExampleFileSyntax(const parser::DefSyntaxTree::Ptr& syntaxTree) |
| 308 | { |
| 309 | EXPECT_EQ(syntaxTree->getRoot()->getChildren().size(), 8) << "Expected 8 nodes"; |
| 310 | |
| 311 | EXPECT_EQ(syntaxTree->getRoot()->getChildren().at(0)->getType(), parser::DefSyntaxNode::Type::Comment); |
| 312 | EXPECT_EQ(syntaxTree->getRoot()->getChildren().at(0)->getString(), "// Some comment"); |
| 313 | |
| 314 | EXPECT_EQ(syntaxTree->getRoot()->getChildren().at(1)->getType(), parser::DefSyntaxNode::Type::Whitespace); |
| 315 | EXPECT_EQ(syntaxTree->getRoot()->getChildren().at(1)->getString(), "\n\n"); |
| 316 | |
| 317 | EXPECT_EQ(syntaxTree->getRoot()->getChildren().at(2)->getType(), parser::DefSyntaxNode::Type::DeclBlock); |
| 318 | auto block = std::static_pointer_cast<parser::DefBlockSyntax>(syntaxTree->getRoot()->getChildren().at(2)); |
| 319 | EXPECT_FALSE(block->getType()); |
| 320 | EXPECT_EQ(block->getName()->getString(), "decl/exporttest/guisurf1"); |
| 321 | EXPECT_EQ(block->getBlockContents(), "\n guiSurf guis/lvlmaps/genericmap.gui\n"); |
| 322 | |
| 323 | EXPECT_EQ(syntaxTree->getRoot()->getChildren().at(3)->getType(), parser::DefSyntaxNode::Type::Whitespace); |
| 324 | EXPECT_EQ(syntaxTree->getRoot()->getChildren().at(3)->getString(), "\n\n"); |
| 325 | |
| 326 | EXPECT_EQ(syntaxTree->getRoot()->getChildren().at(4)->getType(), parser::DefSyntaxNode::Type::DeclBlock); |
| 327 | block = std::static_pointer_cast<parser::DefBlockSyntax>(syntaxTree->getRoot()->getChildren().at(4)); |
| 328 | EXPECT_EQ(block->getType()->getString(), "testdecl2"); |
| 329 | EXPECT_EQ(block->getName()->getString(), "decltable2"); |
| 330 | EXPECT_EQ(block->getBlockContents(), " { 0, 0, 0, 0, 1, 1 } "); |
| 331 | |
| 332 | EXPECT_EQ(syntaxTree->getRoot()->getChildren().at(5)->getType(), parser::DefSyntaxNode::Type::Whitespace); |
| 333 | EXPECT_EQ(syntaxTree->getRoot()->getChildren().at(5)->getString(), "\n"); |
| 334 | |
| 335 | EXPECT_EQ(syntaxTree->getRoot()->getChildren().at(6)->getType(), parser::DefSyntaxNode::Type::DeclBlock); |
| 336 | block = std::static_pointer_cast<parser::DefBlockSyntax>(syntaxTree->getRoot()->getChildren().at(6)); |
| 337 | EXPECT_EQ(block->getType()->getString(), "testdecl2"); |
| 338 | EXPECT_EQ(block->getName()->getString(), "decltable3"); |
| 339 | EXPECT_EQ(block->getBlockContents(), " { 0, 0, 0, 0, 1, 1 } "); |
| 340 | |
| 341 | EXPECT_EQ(syntaxTree->getRoot()->getChildren().at(7)->getType(), parser::DefSyntaxNode::Type::Whitespace); |
| 342 | EXPECT_EQ(syntaxTree->getRoot()->getChildren().at(7)->getString(), "\n"); |
| 343 | } |
| 344 | } |
| 345 | |
| 346 | // Parse the example decl file contents from a string and check the syntax tree contents |
no test coverage detected