%skeleton "lalr1.cc" %require "3.2" %debug %defines %define api.namespace {trueArgGrammar} %define api.parser.class {Parser} %code requires{ namespace trueArgGrammar { class Driver; class Scanner; } #ifndef YY_NULLPTR # if defined __cplusplus && 201103L <= __cplusplus # define YY_NULLPTR nullptr # else # define YY_NULLPTR 0 # endif #endif } %parse-param { Scanner& scanner } %parse-param { Driver& driver } %code{ #include #include #include #include "trueArgGrammarDriver.hpp" #include "trueArgGrammarScanner.hpp" #undef yylex #define yylex scanner.yylex } %define api.value.type variant %define parse.assert %token ARGUMENT_HELP_LONG %token ARGUMENT_VERSION_LONG %start ARGUMENTS %% ARGUMENTS : %empty | ARGUMENT_HELP { std::cout << "Usage:\n" << "\n" << driver.getArgv()[0] << "\n" << driver.getArgv()[0] << "