📄 dosyacc.c
字号:
/* Copyright: (c) Julian Smart */
/* Licence: wxWindows Licence */
/* include platform.h first to get __WIN32__ definition */
#include "wx/platform.h"
#include "wx/setup.h"
#include "wx/deprecated/setup.h"
#if !defined(wxUSE_PROLOGIO) || wxUSE_PROLOGIO
#ifdef __VISUALC__
#pragma warning(push)
#pragma warning(disable:4244) /* warning C4244: '=' : conversion from 'A' to 'B', possible loss of data */
#endif
#if !defined(lint) && 0
static char yysccsid[] = "@(#)yaccpar 1.7 (Berkeley) 09/09/90";
#endif
#define YYBYACC 1
// #line 2 "parser.y"
#include "string.h"
#if defined(_MSC_VER) || defined(__VISAGECPP__)
#include <io.h>
#endif
#include "wx/deprecated/expr.h"
#ifndef __EXTERN_C__
#define __EXTERN_C__ 1
#endif
#if defined(__cplusplus) || defined(__STDC__)
#if defined(__cplusplus) && defined(__EXTERN_C__)
extern "C" {
#endif
#endif
int yylex(void);
int yylook(void);
int yywrap(void);
int yyback(int *, int);
/* You may need to put /DLEX_SCANNER in your makefile
* if you're using LEX!
*/
#ifdef LEX_SCANNER
/* int yyoutput(int); */
void yyoutput(int);
#else
void yyoutput(int);
#endif
#if defined(__cplusplus) || defined(__STDC__)
#if defined(__cplusplus) && defined(__EXTERN_C__)
}
#endif
#endif
// #line 36 "parser.y"
typedef union {
char *s;
/* struct pexpr *expr; */
} YYSTYPE;
// #line 44 "y_tab.c"
#define INTEGER 1
#define WORD 2
#define STRING 3
#define PERIOD 13
#define OPEN 4
#define CLOSE 5
#define COMMA 6
#define NEWLINE 7
#define ERROR 8
#define OPEN_SQUARE 9
#define CLOSE_SQUARE 10
#define EQUALS 11
#define EXP 14
#define YYERRCODE 256
short yylhs[] = { -1,
0, 0, 1, 1, 1, 2, 2, 2, 3, 3,
3, 4, 4, 5, 5, 5, 5, 5, 5, 5,
};
short yylen[] = { 2,
0, 2, 2, 2, 2, 4, 2, 3, 0, 1,
3, 3, 1, 1, 1, 1, 3, 3, 5, 1,
};
short yydefred[] = { 1,
0, 0, 0, 0, 2, 0, 5, 3, 0, 0,
0, 15, 7, 20, 0, 0, 13, 4, 0, 0,
0, 0, 8, 0, 6, 0, 18, 0, 12, 11,
0, 19,
};
short yydgoto[] = { 1,
5, 14, 15, 16, 17,
};
short yysindex[] = { 0,
-2, 9, 2, 1, 0, 10, 0, 0, 11, -5,
17, 0, 0, 0, 14, -1, 0, 0, 33, 38,
41, 16, 0, 11, 0, 29, 0, 40, 0, 0,
44, 0,
};
short yyrindex[] = { 0,
0, 0, 0, 0, 0, 0, 0, 0, 42, 21,
24, 0, 0, 0, 0, 30, 0, 0, 0, 0,
0, 0, 0, 31, 0, 27, 0, 24, 0, 0,
0, 0,
};
short yygindex[] = { 0,
0, 45, -8, 0, 26,
};
#define YYTABLESIZE 254
short yytable[] = { 3,
19, 10, 11, 12, 24, 9, 4, 20, 21, 4,
13, 10, 11, 12, 8, 30, 10, 28, 12, 4,
9, 7, 18, 23, 4, 16, 16, 22, 14, 14,
16, 17, 17, 14, 10, 9, 17, 25, 26, 10,
9, 27, 31, 9, 32, 6, 9, 29, 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, 2,
};
short yycheck[] = { 2,
9, 1, 2, 3, 6, 4, 9, 13, 14, 9,
10, 1, 2, 3, 13, 24, 1, 2, 3, 9,
4, 13, 13, 10, 9, 5, 6, 11, 5, 6,
10, 5, 6, 10, 5, 5, 10, 5, 1, 10,
10, 1, 14, 4, 1, 1, 5, 22, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 256,
};
#define YYFINAL 1
#ifndef YYDEBUG
#define YYDEBUG 0
#endif
#define YYMAXTOKEN 14
#if YYDEBUG
char *yyname[] = {
"end-of-file","INTEGER","WORD","STRING","OPEN","CLOSE","COMMA","NEWLINE",
"ERROR","OPEN_SQUARE","CLOSE_SQUARE","EQUALS",0,"PERIOD","EXP",
};
char *yyrule[] = {
"$accept : commands",
"commands :",
"commands : commands command",
"command : WORD PERIOD",
"command : expr PERIOD",
"command : error PERIOD",
"expr : WORD OPEN arglist CLOSE",
"expr : OPEN_SQUARE CLOSE_SQUARE",
"expr : OPEN_SQUARE arglist CLOSE_SQUARE",
"arglist :",
"arglist : arg",
"arglist : arg COMMA arglist",
"arg : WORD EQUALS arg1",
"arg : arg1",
"arg1 : WORD",
"arg1 : STRING",
"arg1 : INTEGER",
"arg1 : INTEGER PERIOD INTEGER",
"arg1 : INTEGER EXP INTEGER",
"arg1 : INTEGER PERIOD INTEGER EXP INTEGER",
"arg1 : expr",
};
#endif
#define yyclearin (yychar=(-1))
#define yyerrok (yyerrflag=0)
#ifdef YYSTACKSIZE
#ifndef YYMAXDEPTH
#define YYMAXDEPTH YYSTACKSIZE
#endif
#else
#ifdef YYMAXDEPTH
#define YYSTACKSIZE YYMAXDEPTH
#else
#define YYSTACKSIZE 600
#define YYMAXDEPTH 600
#endif
#endif
int yydebug;
int yynerrs;
int yyerrflag;
int yychar;
short *yyssp;
YYSTYPE *yyvsp;
YYSTYPE yyval;
YYSTYPE yylval;
short yyss[YYSTACKSIZE];
YYSTYPE yyvs[YYSTACKSIZE];
#define yystacksize YYSTACKSIZE
// #line 118 "parser.y"
#include "doslex.c"
/*
void yyerror(s)
char *s;
{
syntax_error(s);
}
*/
/* Ansi prototype. If this doesn't work for you... uncomment
the above instead.
*/
void yyerror(char *s)
{
syntax_error(s);
}
/*
* Unfortunately, my DOS version of FLEX
* requires yywrap to be #def'ed, whereas
* the UNIX flex expects a proper function.
*/
/* Not sure if __SC__ is the appropriate thing
* to test
*/
#if 0 /* VS: doesn't work... */
#ifndef __SC__
#ifdef USE_DEFINE
#ifndef yywrap
#define yywrap() 1
#endif
#else
# if !(defined(__VISAGECPP__) && __IBMC__ >= 400)
/* VA 4.0 thinks this is multiply defined (in lex_yy.c) */
int yywrap() { return 1; }
# endif
#endif
#endif
#endif
// #line 247 "y_tab.c"
#define YYABORT goto yyabort
#define YYACCEPT goto yyaccept
#define YYERROR goto yyerrlab
int
PROIO_yyparse()
{
register int yym, yyn, yystate;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -