[Xorp-hackers] [PATCH 04/10] xorp: rtrmgr: Removed y.opcmd_tab.cc
igorm at etf.rs
igorm at etf.rs
Tue Mar 13 03:39:37 PDT 2012
From: Igor Maravic <igorm at etf.rs>
It will be automatically generated with bison.
Signed-off-by: Igor Maravic <igorm at etf.rs>
---
xorp/rtrmgr/y.opcmd_tab.cc | 954 --------------------------------------------
1 files changed, 0 insertions(+), 954 deletions(-)
delete mode 100644 xorp/rtrmgr/y.opcmd_tab.cc
diff --git a/xorp/rtrmgr/y.opcmd_tab.cc b/xorp/rtrmgr/y.opcmd_tab.cc
deleted file mode 100644
index ca9c08d..0000000
--- a/xorp/rtrmgr/y.opcmd_tab.cc
+++ /dev/null
@@ -1,954 +0,0 @@
-#ifndef lint
-
-#endif
-#include <stdlib.h>
-#define YYBYACC 1
-#define YYMAJOR 1
-#define YYMINOR 9
-#define YYLEX yylex()
-#define YYEMPTY -1
-#define yyclearin (yychar=(YYEMPTY))
-#define yyerrok (yyerrflag=0)
-#define YYRECOVERING() (yyerrflag!=0)
-#if defined(__cplusplus) || __STDC__
-static int yygrowstack(void);
-#else
-static int yygrowstack();
-#endif
-#define yyparse opcmdparse
-#define yylex opcmdlex
-#define yyerror opcmderror
-#define yychar opcmdchar
-#define yyval opcmdval
-#define yylval opcmdlval
-#define yydebug opcmddebug
-#define yynerrs opcmdnerrs
-#define yyerrflag opcmderrflag
-#define yyss opcmdss
-#define yyssp opcmdssp
-#define yyvs opcmdvs
-#define yyvsp opcmdvsp
-#define yylhs opcmdlhs
-#define yylen opcmdlen
-#define yydefred opcmddefred
-#define yydgoto opcmddgoto
-#define yysindex opcmdsindex
-#define yyrindex opcmdrindex
-#define yygindex opcmdgindex
-#define yytable opcmdtable
-#define yycheck opcmdcheck
-#define yyname opcmdname
-#define yyrule opcmdrule
-#define yysslim opcmdsslim
-#define yystacksize opcmdstacksize
-#define YYPREFIX "opcmd"
-#line 2 "op_commands.yy"
-#define YYSTYPE char*
-
-#include <assert.h>
-#include <stdio.h>
-
-
-
-#include "rtrmgr_module.h"
-#include "libxorp/xorp.h"
-#include "libxorp/xlog.h"
-#include "libxorp/utils.hh"
-
-#include "op_commands.hh"
-#include "util.hh"
-
-/* XXX: sigh - -p flag to yacc should do this for us */
-#define yystacksize opcmdstacksize
-#define yysslim opcmdsslim
-#line 66 "y.opcmd_tab.c"
-#define YYERRCODE 256
-#define UPLEVEL 257
-#define DOWNLEVEL 258
-#define END 259
-#define COLON 260
-#define CMD_MODULE 261
-#define CMD_COMMAND 262
-#define CMD_HELP 263
-#define CMD_OPT_PARAMETER 264
-#define CMD_TAG 265
-#define CMD_NOMORE_MODE 266
-#define VARIABLE 267
-#define WILDCARD 268
-#define LITERAL 269
-#define STRING 270
-#define SYNTAX_ERROR 271
-const short opcmdlhs[] = { -1,
- 0, 0, 0, 1, 4, 4, 6, 6, 6, 3,
- 7, 8, 5, 9, 11, 10, 10, 12, 12, 12,
- 12, 12, 13, 14, 15, 16, 18, 18, 17, 2,
-};
-const short opcmdlen[] = { 2,
- 0, 2, 1, 3, 0, 2, 1, 1, 1, 1,
- 1, 1, 3, 1, 1, 1, 2, 1, 1, 1,
- 1, 1, 4, 5, 5, 5, 3, 3, 2, 1,
-};
-const short opcmddefred[] = { 0,
- 10, 30, 0, 0, 3, 0, 2, 11, 12, 7,
- 0, 0, 8, 9, 14, 4, 0, 6, 0, 0,
- 0, 0, 0, 0, 0, 18, 19, 20, 21, 22,
- 0, 0, 0, 0, 29, 15, 13, 17, 0, 0,
- 0, 0, 23, 0, 0, 0, 0, 0, 24, 25,
- 26, 27, 28,
-};
-const short opcmddgoto[] = { 3,
- 4, 5, 6, 11, 16, 12, 13, 14, 17, 24,
- 37, 25, 26, 27, 28, 29, 30, 45,
-};
-const short opcmdsindex[] = { -259,
- 0, 0, 0, -259, 0, -266, 0, 0, 0, 0,
- -246, -266, 0, 0, 0, 0, -257, 0, -245, -244,
- -243, -242, -240, -238, -257, 0, 0, 0, 0, 0,
- -248, -247, -241, -239, 0, 0, 0, 0, -237, -236,
- -236, -235, 0, -234, -231, -228, -227, -256, 0, 0,
- 0, 0, 0,
-};
-const short opcmdrindex[] = { 24,
- 0, 0, 0, 24, 0, -232, 0, 0, 0, 0,
- 0, -232, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, -225, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,
-};
-const short opcmdgindex[] = { 30,
- 0, 0, -6, 25, 0, 0, 0, 0, 0, 11,
- 0, 0, 0, 0, 0, 0, 0, -3,
-};
-#define YYTABLESIZE 38
-const short opcmdtable[] = { 10,
- 8, 9, 1, 19, 20, 10, 21, 22, 23, 1,
- 15, 2, 52, 53, 31, 32, 33, 34, 35, 36,
- 39, 43, 40, 1, 5, 48, 44, 49, 41, 42,
- 50, 51, 16, 7, 47, 38, 18, 46,
-};
-const short opcmdcheck[] = { 6,
- 267, 268, 269, 261, 262, 12, 264, 265, 266, 269,
- 257, 271, 269, 270, 260, 260, 260, 260, 259, 258,
- 269, 259, 270, 0, 257, 260, 263, 259, 270, 269,
- 259, 259, 258, 4, 270, 25, 12, 41,
-};
-#define YYFINAL 3
-#ifndef YYDEBUG
-#define YYDEBUG 0
-#endif
-#define YYMAXTOKEN 271
-#if YYDEBUG
-const char * const opcmdname[] = {
-"end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"UPLEVEL","DOWNLEVEL","END",
-"COLON","CMD_MODULE","CMD_COMMAND","CMD_HELP","CMD_OPT_PARAMETER","CMD_TAG",
-"CMD_NOMORE_MODE","VARIABLE","WILDCARD","LITERAL","STRING","SYNTAX_ERROR",
-};
-const char * const opcmdrule[] = {
-"$accept : input",
-"input :",
-"input : definition input",
-"input : syntax_error",
-"definition : word word_or_variable_list specification",
-"word_or_variable_list :",
-"word_or_variable_list : word_or_variable word_or_variable_list",
-"word_or_variable : word",
-"word_or_variable : variable",
-"word_or_variable : wildcard",
-"word : LITERAL",
-"variable : VARIABLE",
-"wildcard : WILDCARD",
-"specification : startspec attributes endspec",
-"startspec : UPLEVEL",
-"endspec : DOWNLEVEL",
-"attributes : attribute",
-"attributes : attribute attributes",
-"attribute : cmd_module",
-"attribute : cmd_command",
-"attribute : cmd_opt_parameter",
-"attribute : cmd_tag",
-"attribute : cmd_nomore_mode",
-"cmd_module : CMD_MODULE COLON LITERAL END",
-"cmd_command : CMD_COMMAND COLON STRING cmd_help END",
-"cmd_opt_parameter : CMD_OPT_PARAMETER COLON STRING cmd_help END",
-"cmd_tag : CMD_TAG COLON LITERAL STRING END",
-"cmd_help : CMD_HELP COLON LITERAL",
-"cmd_help : CMD_HELP COLON STRING",
-"cmd_nomore_mode : CMD_NOMORE_MODE END",
-"syntax_error : SYNTAX_ERROR",
-};
-#endif
-#ifndef YYSTYPE
-typedef int YYSTYPE;
-#endif
-#if YYDEBUG
-#include <stdio.h>
-#endif
-#ifdef YYSTACKSIZE
-#undef YYMAXDEPTH
-#define YYMAXDEPTH YYSTACKSIZE
-#else
-#ifdef YYMAXDEPTH
-#define YYSTACKSIZE YYMAXDEPTH
-#else
-#define YYSTACKSIZE 10000
-#define YYMAXDEPTH 10000
-#endif
-#endif
-#define YYINITSTACKSIZE 200
-int yydebug;
-int yynerrs;
-int yyerrflag;
-int yychar;
-short *yyssp;
-YYSTYPE *yyvsp;
-YYSTYPE yyval;
-YYSTYPE yylval;
-short *yyss;
-short *yysslim;
-YYSTYPE *yyvs;
-int yystacksize;
-#line 125 "op_commands.yy"
-
-extern "C" int opcmdparse();
-extern int opcmdlex();
-extern FILE *opcmdin;
-extern int opcmd_linenum;
-
-void opcmderror(const char *s) throw (ParseError);
-void opcmd_warning(const char *s);
-
-static OpCommandList *ocl = NULL;
-static list<string> path_segments;
-static list<list<string> >path_segments_stack;
-static list<OpCommand> op_command_stack;
-static list<string> op_command_tag_help_stack;
-static list<map<string, string> > opt_params_tag_help_stack;
-static list<map<string, string> > tags_stack;
-static bool is_help_tag = false;
-static string help_tag;
-static string help_string;
-
-static string opcmd_filename;
-static string lastsymbol;
-
-
-// Strip the quotes, the heading and trailing empty space
-static string
-strip_quotes_and_empty_space(const string& s)
-{
- string res;
-
- // Strip the quotes
- if ((s.length() < 2) || (s[0] != '"') || (s[s.length() - 1] != '"')) {
- string errmsg = c_format("Internal parser error: %s "
- "is not a quoted string",
- s.c_str());
- opcmderror(errmsg.c_str());
- }
- res = unquote(s);
-
- // Strip the heading and trailing empty spaces
- res = strip_empty_spaces(res);
-
- return res;
-}
-
-static void
-resolve_tag(const string& tag, string& value)
-{
- map<string, string>& tags = tags_stack.back();
- map<string, string>::iterator iter;
-
- iter = tags.find(tag);
- if (iter == tags.end()) {
- string errmsg = c_format("Cannot resolve tag %s", tag.c_str());
- opcmderror(errmsg.c_str());
- }
-
- value = iter->second;
-}
-
-static void
-append_path_word(char *s)
-{
- string word = s;
- lastsymbol = s;
- free(s);
-
- path_segments.push_back(word);
-}
-
-static void
-append_path_variable(char *s)
-{
- string variable = s;
- lastsymbol = s;
- free(s);
-
- // Check if a valid variable name
- if (ocl->check_variable_name(variable) == false) {
- string errmsg = c_format("Bad variable name: %s", variable.c_str());
- opcmderror(errmsg.c_str());
- }
- path_segments.push_back(variable);
-}
-
-static void
-push_path()
-{
- if (! path_segments_stack.empty()) {
- // Extend the nested path
- list<string>& tmp_prefix = path_segments_stack.back();
- path_segments.insert(path_segments.begin(),
- tmp_prefix.begin(), tmp_prefix.end());
- }
- path_segments_stack.push_back(path_segments);
-
- OpCommand *existing_command = ocl->find_op_command(path_segments);
- if (existing_command != NULL) {
- string errmsg = c_format("Duplicate command: %s",
- existing_command->command_name().c_str());
- opcmderror(errmsg.c_str());
- }
-
- // Push all temporary state storage into the stack
- map<string, string> dummy_map;
- OpCommand op_command(*ocl, path_segments);
- op_command_stack.push_back(op_command);
- op_command_tag_help_stack.push_back("");
- opt_params_tag_help_stack.push_back(dummy_map);
- tags_stack.push_back(dummy_map);
-}
-
-static void
-pop_path()
-{
- string help;
-
- if (op_command_stack.empty())
- opcmderror("Invalid end of block");
-
- OpCommand& op_command = op_command_stack.back();
-
- if (! op_command.is_invalid()) {
- // Resolve the command help (if tagged)
- string& op_command_tag_help = op_command_tag_help_stack.back();
- if (! op_command_tag_help.empty()) {
- resolve_tag(op_command_tag_help, help);
- op_command.set_help_string(help);
- }
-
- // Resolve the optional parameters help (if tagged)
- map<string, string>& opt_params_tag_help = opt_params_tag_help_stack.back();
- map<string, string>::iterator iter;
- for (iter = opt_params_tag_help.begin();
- iter != opt_params_tag_help.end();
- ++iter) {
- string opt_param = iter->first;
- string tag = iter->second;
- resolve_tag(tag, help);
- op_command.add_opt_param(opt_param, help);
- }
-
- // Add the command
- if (ocl->add_op_command(op_command) == NULL) {
- string errmsg = c_format("Cannot add command %s: internal error",
- op_command.command_name().c_str());
- opcmderror(errmsg.c_str());
- }
- }
-
- // Clear the path segments
- path_segments.clear();
-
- // Pop from the stack all temporary state
- path_segments_stack.pop_back();
- op_command_stack.pop_back();
- op_command_tag_help_stack.pop_back();
- opt_params_tag_help_stack.pop_back();
- tags_stack.pop_back();
-}
-
-static void
-add_cmd_module(char *s)
-{
- string module = s;
- lastsymbol = s;
- free(s);
-
- OpCommand& op_command = op_command_stack.back();
- if (! op_command.module().empty()) {
- string errmsg = c_format("Module name already set to %s "
- "(only one module allowed per command)",
- op_command.module().c_str());
- opcmderror(errmsg.c_str());
- }
- op_command.set_module(module);
-}
-
-static void
-add_cmd_command(char *s)
-{
- string command = s;
- lastsymbol = s;
- free(s);
-
- //
- // XXX: note that we allow the command itself to be empty
- // (e.g., if the entry is for an intermediate node in the hierarchy).
- //
- command = strip_quotes_and_empty_space(command);
-
- // Split the command filename from the arguments
- string filename, arguments;
- for (size_t i = 0; i < command.length(); i++) {
- if ((command[i] == ' ') || (command[i] == '\t')) {
- filename = command.substr(0, i);
- arguments = command.substr(i);
- break;
- }
- }
- if (filename.empty())
- filename = command;
-
- // Get a reference to the OpCommand instance
- OpCommand& op_command = op_command_stack.back();
- if (! op_command.command_action().empty()) {
- string errmsg = c_format("Command action already set to %s "
- "(only one action allowed per command)",
- op_command.command_action().c_str());
- opcmderror(errmsg.c_str());
- }
-
- // Find the executable filename
- string executable_filename;
- if (! filename.empty()) {
- executable_filename = find_executable_filename(filename);
- if (executable_filename.empty()) {
- op_command.set_is_invalid(true);
- string errmsg = c_format("Executable file not found: %s",
- filename.c_str());
- opcmd_warning(errmsg.c_str());
- return;
- }
- }
-
- //
- // Split the arguments and verify that the positional arguments
- // (e.g., $0, $1, etc) are resolvable.
- //
- list<string> command_action_argument_list;
- string current_argument;
- for (size_t i = 0; i < arguments.length(); i++) {
- if ((arguments[i] == ' ') || (arguments[i] == '\t')) {
- if (! current_argument.empty()) {
- command_action_argument_list.push_back(current_argument);
- current_argument.erase();
- }
- continue;
- }
- current_argument += arguments[i];
- }
- // Add the last argument
- if (! current_argument.empty()) {
- command_action_argument_list.push_back(current_argument);
- current_argument.erase();
- }
- // Verify the positional arguments
- list<string>::const_iterator iter;
- for (iter = command_action_argument_list.begin();
- iter != command_action_argument_list.end();
- ++iter) {
- const string& arg = *iter;
- if (arg.empty()) {
- string errmsg = c_format("Internal error spliting the positional "
- "arguments");
- opcmderror(errmsg.c_str());
- }
- if (arg[0] == '$') {
- string errmsg;
- list<string> resolved_arguments;
- resolved_arguments = op_command.select_positional_argument(
- op_command.command_parts(), arg, errmsg);
- if (resolved_arguments.empty()) {
- opcmderror(errmsg.c_str());
- }
- }
- }
-
- op_command.set_command_action(command);
- op_command.set_command_action_filename(filename);
- op_command.set_command_action_argument_list(command_action_argument_list);
- op_command.set_command_executable_filename(executable_filename);
-
- if (is_help_tag) {
- string& op_command_tag_help = op_command_tag_help_stack.back();
- op_command_tag_help = help_tag;
- return;
- }
-
- op_command.set_help_string(help_string);
-}
-
-static void
-add_cmd_opt_parameter(char *s)
-{
- string opt_parameter = s;
- lastsymbol = s;
- free(s);
-
- opt_parameter = strip_quotes_and_empty_space(opt_parameter);
- if (opt_parameter.empty()) {
- opcmderror("Invalid emtpy optional parameter");
- }
-
- OpCommand& op_command = op_command_stack.back();
- map<string, string>& opt_params_tag_help = opt_params_tag_help_stack.back();
- if (op_command.has_opt_param(opt_parameter)
- || (opt_params_tag_help.find(opt_parameter)
- != opt_params_tag_help.end())) {
- string errmsg = c_format("Duplicated optional parameter %s",
- opt_parameter.c_str());
- opcmderror(errmsg.c_str());
- }
-
- if (is_help_tag) {
- opt_params_tag_help.insert(make_pair(opt_parameter, help_tag));
- return;
- }
-
- op_command.add_opt_param(opt_parameter, help_string);
-}
-
-static void
-add_cmd_tag(char *t, char *v)
-{
- string tag = t;
- string value = v;
- lastsymbol = v;
- free(t);
- free(v);
-
- map<string, string>& tags = tags_stack.back();
- if (tags.find(tag) != tags.end()) {
- string errmsg = c_format("Duplicated tag %s", tag.c_str());
- opcmderror(errmsg.c_str());
- }
-
- // Strip the quotes
- value = strip_quotes_and_empty_space(value);
-
- tags.insert(make_pair(tag, value));
-}
-
-static void
-add_cmd_help_tag(char *s)
-{
- string tag = s;
- lastsymbol = s;
- free(s);
-
- help_tag = tag;
- is_help_tag = true;
-}
-
-static void
-add_cmd_help_string(char *s)
-{
- string help = s;
- lastsymbol = s;
- free(s);
-
- // Strip the quotes
- help = strip_quotes_and_empty_space(help);
-
- help_string = help;
- is_help_tag = false;
-}
-
-static void
-set_nomore_mode(bool v)
-{
- OpCommand& op_command = op_command_stack.back();
- op_command.set_default_nomore_mode(v);
-}
-
-void
-opcmderror(const char *s) throw (ParseError)
-{
- string errmsg;
-
- errmsg = c_format("PARSE ERROR [Operational Command File: %s line %d]: %s",
- opcmd_filename.c_str(), opcmd_linenum, s);
- errmsg += c_format("; Last symbol parsed was \"%s\"", lastsymbol.c_str());
-
- xorp_throw(ParseError, errmsg);
-}
-
-void
-opcmd_warning(const char *s)
-{
- string errmsg;
-
- errmsg = c_format("[Operational Command File: %s line %d]: %s",
- opcmd_filename.c_str(), opcmd_linenum, s);
- XLOG_WARNING("%s", errmsg.c_str());
-}
-
-int
-init_opcmd_parser(const char *filename, OpCommandList *o)
-{
- ocl = o;
- opcmd_linenum = 1;
-
- opcmdin = fopen(filename, "r");
- if (opcmdin == NULL)
- return -1;
-
- opcmd_filename = filename;
- return 0;
-}
-
-void
-parse_opcmd() throw (ParseError)
-{
- if (opcmdparse() != 0)
- opcmderror("unknown error");
-}
-#line 627 "y.opcmd_tab.c"
-/* allocate initial stack or double stack size, up to YYMAXDEPTH */
-static int yygrowstack()
-{
- int newsize, i;
- short *newss;
- YYSTYPE *newvs;
-
- if ((newsize = yystacksize) == 0)
- newsize = YYINITSTACKSIZE;
- else if (newsize >= YYMAXDEPTH)
- return -1;
- else if ((newsize *= 2) > YYMAXDEPTH)
- newsize = YYMAXDEPTH;
- i = yyssp - yyss;
- newss = yyss ? (short *)realloc(yyss, newsize * sizeof *newss) :
- (short *)malloc(newsize * sizeof *newss);
- if (newss == NULL)
- return -1;
- yyss = newss;
- yyssp = newss + i;
- newvs = yyvs ? (YYSTYPE *)realloc(yyvs, newsize * sizeof *newvs) :
- (YYSTYPE *)malloc(newsize * sizeof *newvs);
- if (newvs == NULL)
- return -1;
- yyvs = newvs;
- yyvsp = newvs + i;
- yystacksize = newsize;
- yysslim = yyss + newsize - 1;
- return 0;
-}
-
-#define YYABORT goto yyabort
-#define YYREJECT goto yyabort
-#define YYACCEPT goto yyaccept
-#define YYERROR goto yyerrlab
-
-#ifndef YYPARSE_PARAM
-#if defined(__cplusplus) || __STDC__
-#define YYPARSE_PARAM_ARG void
-#define YYPARSE_PARAM_DECL
-#else /* ! ANSI-C/C++ */
-#define YYPARSE_PARAM_ARG
-#define YYPARSE_PARAM_DECL
-#endif /* ANSI-C/C++ */
-#else /* YYPARSE_PARAM */
-#ifndef YYPARSE_PARAM_TYPE
-#define YYPARSE_PARAM_TYPE void *
-#endif
-#if defined(__cplusplus) || __STDC__
-#define YYPARSE_PARAM_ARG YYPARSE_PARAM_TYPE YYPARSE_PARAM
-#define YYPARSE_PARAM_DECL
-#else /* ! ANSI-C/C++ */
-#define YYPARSE_PARAM_ARG YYPARSE_PARAM
-#define YYPARSE_PARAM_DECL YYPARSE_PARAM_TYPE YYPARSE_PARAM;
-#endif /* ANSI-C/C++ */
-#endif /* ! YYPARSE_PARAM */
-
-int
-yyparse (YYPARSE_PARAM_ARG)
- YYPARSE_PARAM_DECL
-{
- register int yym, yyn, yystate;
-#if YYDEBUG
- register const char *yys;
-
- if ((yys = getenv("YYDEBUG")))
- {
- yyn = *yys;
- if (yyn >= '0' && yyn <= '9')
- yydebug = yyn - '0';
- }
-#endif
-
- yynerrs = 0;
- yyerrflag = 0;
- yychar = (-1);
-
- if (yyss == NULL && yygrowstack()) goto yyoverflow;
- yyssp = yyss;
- yyvsp = yyvs;
- *yyssp = yystate = 0;
-
-yyloop:
- if ((yyn = yydefred[yystate])) goto yyreduce;
- if (yychar < 0)
- {
- if ((yychar = yylex()) < 0) yychar = 0;
-#if YYDEBUG
- if (yydebug)
- {
- yys = 0;
- if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
- if (!yys) yys = "illegal-symbol";
- printf("%sdebug: state %d, reading %d (%s)\n",
- YYPREFIX, yystate, yychar, yys);
- }
-#endif
- }
- if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
- yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
- {
-#if YYDEBUG
- if (yydebug)
- printf("%sdebug: state %d, shifting to state %d\n",
- YYPREFIX, yystate, yytable[yyn]);
-#endif
- if (yyssp >= yysslim && yygrowstack())
- {
- goto yyoverflow;
- }
- *++yyssp = yystate = yytable[yyn];
- *++yyvsp = yylval;
- yychar = (-1);
- if (yyerrflag > 0) --yyerrflag;
- goto yyloop;
- }
- if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
- yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
- {
- yyn = yytable[yyn];
- goto yyreduce;
- }
- if (yyerrflag) goto yyinrecovery;
-#if defined(lint) || defined(__GNUC__)
- goto yynewerror;
-#endif
-yynewerror:
- yyerror("syntax error");
-#if defined(lint) || defined(__GNUC__)
- goto yyerrlab;
-#endif
-yyerrlab:
- ++yynerrs;
-yyinrecovery:
- if (yyerrflag < 3)
- {
- yyerrflag = 3;
- for (;;)
- {
- if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
- yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
- {
-#if YYDEBUG
- if (yydebug)
- printf("%sdebug: state %d, error recovery shifting\
- to state %d\n", YYPREFIX, *yyssp, yytable[yyn]);
-#endif
- if (yyssp >= yysslim && yygrowstack())
- {
- goto yyoverflow;
- }
- *++yyssp = yystate = yytable[yyn];
- *++yyvsp = yylval;
- goto yyloop;
- }
- else
- {
-#if YYDEBUG
- if (yydebug)
- printf("%sdebug: error recovery discarding state %d\n",
- YYPREFIX, *yyssp);
-#endif
- if (yyssp <= yyss) goto yyabort;
- --yyssp;
- --yyvsp;
- }
- }
- }
- else
- {
- if (yychar == 0) goto yyabort;
-#if YYDEBUG
- if (yydebug)
- {
- yys = 0;
- if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
- if (!yys) yys = "illegal-symbol";
- printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
- YYPREFIX, yystate, yychar, yys);
- }
-#endif
- yychar = (-1);
- goto yyloop;
- }
-yyreduce:
-#if YYDEBUG
- if (yydebug)
- printf("%sdebug: state %d, reducing by rule %d (%s)\n",
- YYPREFIX, yystate, yyn, yyrule[yyn]);
-#endif
- yym = yylen[yyn];
- yyval = yyvsp[1-yym];
- switch (yyn)
- {
-case 4:
-#line 46 "op_commands.yy"
-{ }
-break;
-case 6:
-#line 50 "op_commands.yy"
-{ }
-break;
-case 10:
-#line 58 "op_commands.yy"
-{ append_path_word(yyvsp[0]); }
-break;
-case 11:
-#line 61 "op_commands.yy"
-{ append_path_variable(yyvsp[0]); }
-break;
-case 12:
-#line 64 "op_commands.yy"
-{ append_path_word(yyvsp[0]); }
-break;
-case 13:
-#line 67 "op_commands.yy"
-{ }
-break;
-case 14:
-#line 70 "op_commands.yy"
-{ push_path(); }
-break;
-case 15:
-#line 73 "op_commands.yy"
-{ pop_path(); }
-break;
-case 23:
-#line 87 "op_commands.yy"
-{
- add_cmd_module(yyvsp[-1]);
- }
-break;
-case 24:
-#line 92 "op_commands.yy"
-{
- add_cmd_command(yyvsp[-2]);
- }
-break;
-case 25:
-#line 97 "op_commands.yy"
-{
- add_cmd_opt_parameter(yyvsp[-2]);
- }
-break;
-case 26:
-#line 102 "op_commands.yy"
-{
- add_cmd_tag(yyvsp[-2], yyvsp[-1]);
- }
-break;
-case 27:
-#line 107 "op_commands.yy"
-{
- add_cmd_help_tag(yyvsp[0]);
- }
-break;
-case 28:
-#line 110 "op_commands.yy"
-{
- add_cmd_help_string(yyvsp[0]);
- }
-break;
-case 29:
-#line 115 "op_commands.yy"
-{
- set_nomore_mode(true);
- }
-break;
-case 30:
-#line 120 "op_commands.yy"
-{ opcmderror("syntax error"); }
-break;
-#line 900 "y.opcmd_tab.c"
- }
- yyssp -= yym;
- yystate = *yyssp;
- yyvsp -= yym;
- yym = yylhs[yyn];
- if (yystate == 0 && yym == 0)
- {
-#if YYDEBUG
- if (yydebug)
- printf("%sdebug: after reduction, shifting from state 0 to\
- state %d\n", YYPREFIX, YYFINAL);
-#endif
- yystate = YYFINAL;
- *++yyssp = YYFINAL;
- *++yyvsp = yyval;
- if (yychar < 0)
- {
- if ((yychar = yylex()) < 0) yychar = 0;
-#if YYDEBUG
- if (yydebug)
- {
- yys = 0;
- if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
- if (!yys) yys = "illegal-symbol";
- printf("%sdebug: state %d, reading %d (%s)\n",
- YYPREFIX, YYFINAL, yychar, yys);
- }
-#endif
- }
- if (yychar == 0) goto yyaccept;
- goto yyloop;
- }
- if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
- yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
- yystate = yytable[yyn];
- else
- yystate = yydgoto[yym];
-#if YYDEBUG
- if (yydebug)
- printf("%sdebug: after reduction, shifting from state %d \
-to state %d\n", YYPREFIX, *yyssp, yystate);
-#endif
- if (yyssp >= yysslim && yygrowstack())
- {
- goto yyoverflow;
- }
- *++yyssp = yystate;
- *++yyvsp = yyval;
- goto yyloop;
-yyoverflow:
- yyerror("yacc stack overflow");
-yyabort:
- return (1);
-yyaccept:
- return (0);
-}
--
1.7.5.4
More information about the Xorp-hackers
mailing list