#include <stdio.h>#include <fcntl.h>#include <unistd.h>#include <fstream>#include <string>#include <list>#include "YCP.h"#include "ycp/Scanner.h"#include "ycp/y2log.h"#include "ycp/pathsearch.h"#include "ycp/ExecutionEnvironment.h"#include "ycp/StaticDeclaration.h"#include "ycp/YCode.h"#include "ycp/Type.h"#include "ycp/YExpression.h"#include "ycp/YStatement.h"#include "ycp/YBlock.h"#include "ycp/SymbolTable.h"#include "ycp/SymbolEntry.h"#include "ycp/Bytecode.h"#include "ycp/Parser.h"Classes | |
| struct | yystype_type |
| struct | stack |
| general stack handling More... | |
| struct | blockstack_t |
| stack for blocks More... | |
| struct | scannerstack_t |
| stack for scanners More... | |
| union | yyalloc |
Defines | |
| #define | YYBISON 1 |
| #define | YYSKELETON_NAME "yacc.c" |
| #define | YYPURE 1 |
| #define | YYLSP_NEEDED 0 |
| #define | SCANNER_ERROR 258 |
| #define | END_OF_FILE 259 |
| #define | EMPTY 260 |
| #define | LIST 261 |
| #define | MAP 262 |
| #define | STRUCT 263 |
| #define | BLOCK 264 |
| #define | DEFINE 265 |
| #define | UNDEFINE 266 |
| #define | I18N 267 |
| #define | RETURN 268 |
| #define | CONTINUE 269 |
| #define | BREAK 270 |
| #define | IF 271 |
| #define | DO 272 |
| #define | WHILE 273 |
| #define | REPEAT 274 |
| #define | UNTIL 275 |
| #define | IS 276 |
| #define | ISNIL 277 |
| #define | SYMBOL 278 |
| #define | DCSYMBOL 279 |
| #define | DCQUOTED_BLOCK 280 |
| #define | QUOTED_BLOCK 281 |
| #define | QUOTED_EXPRESSION 282 |
| #define | CLOSEBRACKET 283 |
| #define | TYPEDEF 284 |
| #define | MODULE 285 |
| #define | IMPORT 286 |
| #define | EXPORT 287 |
| #define | MAPEXPR 288 |
| #define | INCLUDE 289 |
| #define | GLOBAL 290 |
| #define | TEXTDOMAIN 291 |
| #define | CONST 292 |
| #define | FULLNAME 293 |
| #define | STATIC 294 |
| #define | EXTERN 295 |
| #define | LOOKUP 296 |
| #define | SYM_NAMESPACE 297 |
| #define | IDENTIFIER 298 |
| #define | STRING 299 |
| #define | C_VOID 300 |
| #define | C_BOOLEAN 301 |
| #define | C_INTEGER 302 |
| #define | C_FLOAT 303 |
| #define | C_BYTEBLOCK 304 |
| #define | C_PATH 305 |
| #define | C_SYMBOL 306 |
| #define | C_TYPE 307 |
| #define | OR 308 |
| #define | AND 309 |
| #define | NEQ 310 |
| #define | EQUALS 311 |
| #define | GE 312 |
| #define | LE 313 |
| #define | RIGHT 314 |
| #define | LEFT 315 |
| #define | ELSE 316 |
| #define | UMINUS 317 |
| #define | DO_DEBUG 0 |
| #define | YYDEBUG 0 |
| #define | YYERROR_VERBOSE 1 |
| #define | YYSTYPE yystype_type |
| #define | YYPARSE_PARAM vp_parser |
| #define | YYLEX_PARAM vp_parser |
| #define | p_parser ((Parser *) vp_parser) |
| #define | LINE_NOW (p_parser->m_lineno) |
| #define | FILE_NOW (p_parser->filename ()) |
| #define | yyerror(text) yyerror_with_lineinfo (p_parser, -1, text) |
| #define | yywarning(text, lineno) yywarning_with_lineinfo (p_parser, lineno, text) |
| #define | yyConstAssignError(name, lineno) yyerror_assign_const (p_parser, lineno, name) |
| #define | yyLerror(text, lineno) yyerror_with_lineinfo (p_parser, lineno, text) |
| #define | yyCerror(code, type, lineno) yyerror_with_code (p_parser, lineno, code, type) |
| #define | yyVerror(name, lineno) yyerror_with_name (p_parser, lineno, name) |
| #define | yyFerror(name, lineno) yyerror_with_file (p_parser, lineno, name) |
| #define | yyTerror(text, lineno, tentry) yyerror_with_tableentry (p_parser, lineno, text, tentry) |
| #define | yyTwarning(tentry) yywarning_with_tableentry (p_parser, 0, tentry) |
| #define | yyTypeMismatch(text, expected, seen, lineno) yyerror_type_mismatch (p_parser, lineno, text, expected, seen) |
| #define | yyMissingArgument(type, lineno) yyerror_missing_argument (p_parser, lineno, type) |
| #define | yyCantCast(from, to, lineno) yyerror_cant_cast (p_parser, lineno, from, to) |
| #define | yyNoModule(module, lineno) yyerror_no_module (p_parser, lineno, module) |
| #define | check_unary_op(result, e1, op) i_check_unary_op (result, e1, op, p_parser) |
| #define | check_binary_op(result, e1, op, e2) i_check_binary_op (result, e1, op, e2, p_parser) |
| #define | check_compare_op(result, e1, op, e2) i_check_compare_op (result, e1, op, e2, p_parser) |
| #define | check_void_assign(lhs, rhs) i_check_void_assign (lhs, rhs, p_parser) |
| #define | blockstack_push(s, e) stack_push ((stack_t **)&(s), (stack_t *)e) |
| #define | blockstack_pop(s) (p_parser->m_blockstack_depth--, (blockstack_t *)stack_pop ((stack_t **)&(s))) |
| #define | blockstack_at_toplevel() (p_parser->m_blockstack_depth == 1) |
| #define | scannerstack_push(s, e) stack_push ((stack_t **)&(s), (stack_t *)e) |
| #define | scannerstack_pop(s) (scannerstack_t *)stack_pop ((stack_t **)&(s)) |
| #define | scannerstack_empty() (p_parser->m_scanner_stack == 0) |
| #define | YYERROR_VERBOSE 1 |
| #define | YYSTACK_ALLOC malloc |
| #define | YYSTACK_FREE free |
| #define | YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) |
| #define | YYSTACK_BYTES(N) |
| #define | YYCOPY(To, From, Count) |
| #define | YYSTACK_RELOCATE(Stack) |
| #define | YYFINAL 52 |
| #define | YYLAST 1183 |
| #define | YYNTOKENS 86 |
| #define | YYNNTS 46 |
| #define | YYNRULES 148 |
| #define | YYNSTATES 288 |
| #define | YYUNDEFTOK 2 |
| #define | YYMAXUTOK 317 |
| #define | YYTRANSLATE(YYX) ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) |
| #define | YYPACT_NINF -229 |
| #define | YYTABLE_NINF -145 |
| #define | YYSIZE_T unsigned int |
| #define | yyerrok (yyerrstatus = 0) |
| #define | yyclearin (yychar = YYEMPTY) |
| #define | YYEMPTY (-2) |
| #define | YYEOF 0 |
| #define | YYACCEPT goto yyacceptlab |
| #define | YYABORT goto yyabortlab |
| #define | YYERROR goto yyerrlab1 |
| #define | YYFAIL goto yyerrlab |
| #define | YYRECOVERING() (!!yyerrstatus) |
| #define | YYBACKUP(Token, Value) |
| #define | YYTERROR 1 |
| #define | YYERRCODE 256 |
| #define | YYLLOC_DEFAULT(Current, Rhs, N) |
| #define | YYLEX yylex (&yylval, YYLEX_PARAM) |
| #define | YYDPRINTF(Args) |
| #define | YYDSYMPRINT(Args) |
| #define | YYDSYMPRINTF(Title, Token, Value, Location) |
| #define | YY_STACK_PRINT(Bottom, Top) |
| #define | YY_REDUCE_PRINT(Rule) |
| #define | YYINITDEPTH 200 |
| #define | YYMAXDEPTH 10000 |
| #define | YYPOPSTACK (yyvsp--, yyssp--) |
Typedefs | |
| typedef stack | stack_t |
| general stack handling | |
| typedef short | yysigned_char |
Enumerations | |
| enum | yytokentype { SCANNER_ERROR = 258, END_OF_FILE = 259, EMPTY = 260, LIST = 261, MAP = 262, STRUCT = 263, BLOCK = 264, DEFINE = 265, UNDEFINE = 266, I18N = 267, RETURN = 268, CONTINUE = 269, BREAK = 270, IF = 271, DO = 272, WHILE = 273, REPEAT = 274, UNTIL = 275, IS = 276, ISNIL = 277, SYMBOL = 278, DCSYMBOL = 279, DCQUOTED_BLOCK = 280, QUOTED_BLOCK = 281, QUOTED_EXPRESSION = 282, CLOSEBRACKET = 283, TYPEDEF = 284, MODULE = 285, IMPORT = 286, EXPORT = 287, MAPEXPR = 288, INCLUDE = 289, GLOBAL = 290, TEXTDOMAIN = 291, CONST = 292, FULLNAME = 293, STATIC = 294, EXTERN = 295, LOOKUP = 296, SYM_NAMESPACE = 297, IDENTIFIER = 298, STRING = 299, C_VOID = 300, C_BOOLEAN = 301, C_INTEGER = 302, C_FLOAT = 303, C_BYTEBLOCK = 304, C_PATH = 305, C_SYMBOL = 306, C_TYPE = 307, OR = 308, AND = 309, NEQ = 310, EQUALS = 311, GE = 312, LE = 313, RIGHT = 314, LEFT = 315, ELSE = 316, UMINUS = 317 } |
| enum | scan_states { SCAN_FILE, SCAN_START_INCLUDE, SCAN_INCLUDE } |
Functions | |
| void | yyerror_with_lineinfo (Parser *parser, int lineno, const char *s) |
| void | yywarning_with_lineinfo (Parser *parser, int lineno, const char *s) |
| void | yyerror_with_code (Parser *parser, int lineno, YCodePtr c, constTypePtr t) |
| void | yyerror_with_name (Parser *parser, int lineno, const char *s) |
| void | yyerror_with_file (Parser *parser, int lineno, const char *s) |
| void | yyerror_with_tableentry (Parser *parser, int lineno, const char *s, TableEntry *entry) |
| void | yywarning_with_tableentry (Parser *parser, int lineno, TableEntry *entry) |
| void | yyerror_type_mismatch (Parser *parser, int lineno, const char *s, constTypePtr expected_type, constTypePtr seen_type) |
| void | yyerror_missing_argument (Parser *parser, int lineno, constTypePtr type) |
| void | yyerror_assign_const (Parser *parser, int lineno, const char *s) |
| void | yyerror_cant_cast (Parser *parser, int lineno, constTypePtr from, constTypePtr to) |
| void | yyerror_no_module (Parser *parser, int lineno, const char *module) |
| constTypePtr | attach_parameter (Parser *parser, YCodePtr code, YYSTYPE *parm, YYSTYPE *parm1=0) |
| YBlockPtr | start_block (Parser *parser, constTypePtr type) |
| int | yylex (YYSTYPE *, void *) |
| void | i_check_unary_op (YYSTYPE *result, YYSTYPE *e1, const char *op, Parser *parser) |
| void | i_check_binary_op (YYSTYPE *result, YYSTYPE *e1, const char *op, YYSTYPE *e2, Parser *parser) |
| void | i_check_compare_op (YYSTYPE *result, YYSTYPE *e1, YECompare::c_op op, YYSTYPE *e2, Parser *parser) |
| void | i_check_void_assign (YYSTYPE *lhs, YYSTYPE *rhs, Parser *parser) |
| void | stack_push (stack_t **stack, stack_t *element) |
| push element to stack | |
| stack_t * | stack_pop (stack_t **stack) |
| pop element to stack | |
| YYSIZE_T | yystrlen (yystr) const char *yystr |
| int | yyparse (YYPARSE_PARAM) void *YYPARSE_PARAM |
Variables | |
| constTypePtr | declared_return_type = Type::Unspec |
| set by function declaration in order to predefine a definitions block return type | |
| StaticDeclaration | static_declarations |
| ExecutionEnvironment | ee |
| bool | inside_module = false |
| int | repeat_count = 0 |
| int | do_while_count = 0 |
| const unsigned char | yytranslate [] |
| const char *const | yytname [] |
| const unsigned char | yyr1 [] |
| const unsigned char | yyr2 [] |
| const unsigned char | yydefact [] |
| const short | yydefgoto [] |
| const short | yypact [] |
| const short | yypgoto [] |
| const short | yytable [] |
| const short | yycheck [] |
| const unsigned char | yystos [] |
| const char * | yysrc |
| YYSTYPE * | yyvaluep |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Value: do \ if (yychar == YYEMPTY && yylen == 1) \ { \ yychar = (Token); \ yylval = (Value); \ yytoken = YYTRANSLATE (yychar); \ YYPOPSTACK; \ goto yybackup; \ } \ else \ { \ yyerror ("syntax error: cannot back up");\ YYERROR; \ } \ while (0) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Value: do \ { \ register YYSIZE_T yyi; \ for (yyi = 0; yyi < (Count); yyi++) \ (To)[yyi] = (From)[yyi]; \ } \ while (0) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Value: Current.first_line = Rhs[1].first_line; \ Current.first_column = Rhs[1].first_column; \ Current.last_line = Rhs[N].last_line; \ Current.last_column = Rhs[N].last_column; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Value: ((N) * (sizeof (short) + sizeof (YYSTYPE)) \ + YYSTACK_GAP_MAXIMUM) |
|
|
|
|
|
|
|
|
Value: do \ { \ YYSIZE_T yynewbytes; \ YYCOPY (&yyptr->Stack, Stack, yysize); \ Stack = &yyptr->Stack; \ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ yyptr += yynewbytes / sizeof (*yyptr); \ } \ while (0) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
general stack handling
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
|
|
|
||||||||||||||||||||||||
|
|
|
||||||||||||||||||||||||
|
|
|
||||||||||||||||||||
|
|
|
||||||||||||||||
|
|
|
|
pop element to stack
|
|
||||||||||||
|
push element to stack
|
|
||||||||||||
|
begin of a block
|
|
||||||||||||||||
|
|
|
||||||||||||||||||||
|
|
|
||||||||||||||||
|
|
|
||||||||||||||||
|
|
|
||||||||||||||||||||||||
|
|
|
||||||||||||||||||||
|
|
|
||||||||||||||||
|
|
|
||||||||||||||||
|
|
|
||||||||||||||||
|
|
|
||||||||||||||||||||
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
||||||||||||||||
|
|
|
|
set by function declaration in order to predefine a definitions block return type
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Initial value:
{
-1, 22, 48, 39, 202, 40, 41, 42, 24, 51,
33, 57, 58, 120, 228, 121, 270, 172, 251, 174,
253, 276, 194, 195, 200, 122, 123, 124, 125, 189,
231, 232, 233, 126, 25, 26, 49, 91, 27, 45,
28, 97, 164, 29, 30, 179
}
|
|
|
|
|
|
Initial value:
{
-229, -229, -6, 70, -229, 72, 5, -229, -41, -229,
-229, -49, -229, -228, -229, -229, -229, -229, -229, -229,
-229, -229, -4, -125, -229, -229, -229, -229, -229, -229,
-229, -229, -48, -229, -229, -229, -81, 164, -229, -229,
-55, -229, -229, -229, -54, -12
}
|
|
|
Initial value:
{
0, 86, 87, 87, 87, 88, 88, 88, 88, 89,
90, 90, 90, 90, 91, 92, 92, 92, 92, 92,
92, 92, 92, 92, 92, 92, 92, 92, 93, 93,
93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
95, 94, 96, 94, 97, 98, 98, 99, 100, 99,
99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
99, 99, 101, 102, 101, 103, 104, 101, 105, 106,
101, 101, 101, 101, 101, 107, 107, 108, 108, 108,
108, 108, 108, 108, 108, 108, 108, 109, 109, 110,
110, 111, 111, 111, 111, 112, 113, 114, 114, 115,
115, 116, 116, 117, 117, 118, 119, 119, 120, 120,
120, 120, 120, 120, 120, 120, 121, 121, 122, 122,
123, 123, 124, 124, 125, 125, 127, 126, 128, 128,
128, 128, 128, 129, 129, 130, 130, 131, 131
}
|
|
|
Initial value:
{
0, 2, 1, 1, 0, 1, 1, 1, 1, 5,
0, 1, 1, 1, 4, 1, 8, 1, 3, 3,
6, 1, 7, 3, 1, 1, 1, 1, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 2, 3,
3, 3, 3, 3, 3, 3, 3, 2, 2, 5,
0, 3, 0, 3, 2, 2, 0, 1, 0, 4,
3, 3, 3, 3, 3, 3, 4, 1, 2, 2,
1, 1, 6, 0, 6, 0, 0, 9, 0, 0,
9, 2, 2, 2, 3, 2, 0, 1, 1, 3,
1, 5, 3, 2, 2, 3, 4, 2, 2, 1,
3, 4, 2, 2, 4, 4, 4, 1, 0, 1,
0, 0, 1, 1, 3, 2, 3, 6, 1, 1,
1, 1, 1, 1, 1, 1, 2, 4, 1, 3,
1, 0, 2, 4, 3, 5, 0, 5, 0, 2,
1, 4, 3, 1, 1, 1, 1, 1, 3
}
|
|
|
|
|
|
|
|
|
|
|
|
Initial value:
{
"$end", "error", "$undefined", "SCANNER_ERROR", "END_OF_FILE", "EMPTY",
"LIST", "MAP", "STRUCT", "BLOCK", "DEFINE", "UNDEFINE", "I18N",
"RETURN", "CONTINUE", "BREAK", "IF", "DO", "WHILE", "REPEAT", "UNTIL",
"IS", "ISNIL", "SYMBOL", "DCSYMBOL", "DCQUOTED_BLOCK", "QUOTED_BLOCK",
"QUOTED_EXPRESSION", "CLOSEBRACKET", "TYPEDEF", "MODULE", "IMPORT",
"EXPORT", "MAPEXPR", "INCLUDE", "GLOBAL", "TEXTDOMAIN", "CONST",
"FULLNAME", "STATIC", "EXTERN", "LOOKUP", "SYM_NAMESPACE", "IDENTIFIER",
"STRING", "C_VOID", "C_BOOLEAN", "C_INTEGER", "C_FLOAT", "C_BYTEBLOCK",
"C_PATH", "C_SYMBOL", "C_TYPE", "'='", "'?'", "OR", "AND", "'|'", "'^'",
"'&'", "NEQ", "EQUALS", "'<'", "'>'", "GE", "LE", "RIGHT", "LEFT",
"'+'", "'-'", "'*'", "'/'", "'%'", "'!'", "ELSE", "'~'", "UMINUS",
"':'", "'['", "'('", "')'", "','", "'{'", "'}'", "';'", "']'",
"$accept", "ycp", "expression", "bracket_expression",
"castable_expression", "casted_expression", "compact_expression",
"infix_expression", "block", "@1", "@2", "block_end", "statements",
"statement", "@3", "control_statement", "@4", "@5", "@6", "@7", "@8",
"opt_else", "type", "type_gt", "types", "definition", "function_start",
"opt_global_identifier", "opt_global", "opt_define", "tupletypes",
"tupletype", "formal_param", "assignment", "constant", "list",
"list_elements", "opt_comma", "map", "map_elements", "function_call",
"@9", "parameters", "function_name", "identifier", "identifier_list", 0
}
|
|
|
|
|
|
|
1.3.6