PIPS
|
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <sys/param.h>
#include <unistd.h>
#include "linear.h"
#include "genC.h"
#include "ri.h"
#include "database.h"
#include "misc.h"
#include "ri-util.h"
#include "pipsdbm.h"
#include "resources.h"
#include "phases.h"
#include "properties.h"
#include "pipsmake.h"
#include "top-level.h"
#include "tpips.h"
#include <limits.h>
Go to the source code of this file.
Data Structures | |
union | YYSTYPE |
Value type. More... | |
union | yyalloc |
INFRINGES ON USER NAME SPACE. More... | |
Macros | |
#define | YYBISON 30802 |
A Bison parser, made by GNU Bison 3.8.2. More... | |
#define | YYBISON_VERSION "3.8.2" |
Bison version string. More... | |
#define | YYSKELETON_NAME "yacc.c" |
Skeleton name. More... | |
#define | YYPURE 0 |
Pure parsers. More... | |
#define | YYPUSH 0 |
Push parsers. More... | |
#define | YYPULL 1 |
Pull parsers. More... | |
#define | yyparse(void) tp_parse |
------—. More... | |
#define | yylex tp_lex |
#define | yyerror tp_error |
#define | yydebug tp_debug |
#define | yynerrs tp_nerrs |
#define | yylval tp_lval |
#define | yychar tp_char |
#define | YYERROR_VERBOSE 1 /**MUCH better error messages with bison */ |
#define | YY_CAST(Type, Val) ((Type) (Val)) |
#define | YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) |
#define | YY_NULLPTR ((void*)0) |
#define | YY_TP_Y_TAB_H_INCLUDED |
Use api.header.include to include this header instead of duplicating it here. More... | |
#define | YYDEBUG 0 |
Debug traces. More... | |
#define | YYTOKENTYPE |
Token kinds. More... | |
#define | YYEMPTY -2 |
Token kinds. More... | |
#define | YYEOF 0 |
#define | YYerror 256 |
#define | YYUNDEF 257 |
#define | TK_OPEN 258 |
#define | TK_CREATE 259 |
#define | TK_CLOSE 260 |
#define | TK_CHECKPOINT 261 |
#define | TK_DELETE 262 |
#define | TK_MODULE 263 |
#define | TK_MAKE 264 |
#define | TK_APPLY 265 |
#define | TK_CAPPLY 266 |
#define | TK_DISPLAY 267 |
#define | TK_REMOVE 268 |
#define | TK_ACTIVATE 269 |
#define | TK_SET_PROPERTY 270 |
#define | TK_GET_PROPERTY 271 |
#define | TK_SET_ENVIRONMENT 272 |
#define | TK_GET_ENVIRONMENT 273 |
#define | TK_UNSET_ENVIRONMENT 274 |
#define | TK_CDIR 275 |
#define | TK_INFO 276 |
#define | TK_PWD 277 |
#define | TK_HELP 278 |
#define | TK_SHOW 279 |
#define | TK_SOURCE 280 |
#define | TK_SHELL 281 |
#define | TK_ECHO 282 |
#define | TK_UNKNOWN 283 |
#define | TK_TIMEOUT 284 |
#define | TK_QUIT 285 |
#define | TK_EXIT 286 |
#define | TK_LINE 287 |
#define | TK_CHECKACTIVE 288 |
#define | TK_VERSION 289 |
#define | TK_TOUCH 290 |
#define | TK_OWNER_NAME 291 |
#define | TK_OWNER_ALL 292 |
#define | TK_OWNER_ALLFUNC 293 |
#define | TK_OWNER_ALLCU 294 |
#define | TK_OWNER_PROGRAM 295 |
#define | TK_OWNER_MAIN 296 |
#define | TK_OWNER_MODULE 297 |
#define | TK_OWNER_CALLERS 298 |
#define | TK_OWNER_CALLEES 299 |
#define | TK_OPENPAREN 300 |
#define | TK_COMMA 301 |
#define | TK_CLOSEPAREN 302 |
#define | TK_EQUAL 303 |
#define | TK_NAME 304 |
#define | TK_A_STRING 305 |
#define | TK_ENDOFLINE 306 |
#define | TK_INT 307 |
#define | YYSTYPE_IS_TRIVIAL 1 |
#define | YYSTYPE_IS_DECLARED 1 |
#define | YYPTRDIFF_T long |
#define | YYPTRDIFF_MAXIMUM LONG_MAX |
#define | YYSIZE_T unsigned |
#define | YYSIZE_MAXIMUM |
#define | YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X)) |
#define | YY_(Msgid) Msgid |
#define | YY_ATTRIBUTE_PURE |
#define | YY_ATTRIBUTE_UNUSED |
#define | YY_USE(E) ((void) (E)) |
Suppress unused-variable warnings by "using" E. More... | |
#define | YY_INITIAL_VALUE(Value) Value |
Suppress an incorrect diagnostic about yylval being uninitialized. More... | |
#define | YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN |
#define | YY_IGNORE_MAYBE_UNINITIALIZED_END |
#define | YY_IGNORE_USELESS_CAST_BEGIN |
#define | YY_IGNORE_USELESS_CAST_END |
#define | YY_ASSERT(E) ((void) (0 && (E))) |
#define | YYSTACK_ALLOC YYMALLOC |
The parser invokes alloca or malloc; define the necessary symbols. More... | |
#define | YYSTACK_FREE YYFREE |
#define | YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM |
#define | YYMALLOC malloc |
#define | YYFREE free |
INFRINGES ON USER NAME SPACE. More... | |
#define | YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1) |
The size of the maximum gap between one aligned stack and the next. More... | |
#define | YYSTACK_BYTES(N) |
The size of an array large to enough to hold all stacks, each with N elements. More... | |
#define | YYCOPY_NEEDED 1 |
#define | YYSTACK_RELOCATE(Stack_alloc, Stack) |
Relocate STACK from its old location to the new one. More... | |
#define | YYCOPY(Dst, Src, Count) |
Copy COUNT objects from SRC to DST. More... | |
#define | YYFINAL 114 |
!YYCOPY_NEEDED More... | |
#define | YYLAST 179 |
YYLAST – Last index in YYTABLE. More... | |
#define | YYNTOKENS 53 |
YYNTOKENS – Number of terminals. More... | |
#define | YYNNTS 46 |
YYNNTS – Number of nonterminals. More... | |
#define | YYNRULES 103 |
YYNRULES – Number of rules. More... | |
#define | YYNSTATES 185 |
YYNSTATES – Number of states. More... | |
#define | YYMAXUTOK 307 |
YYMAXUTOK – Last valid token kind. More... | |
#define | YYTRANSLATE(YYX) |
YYTRANSLATE(TOKEN-NUM) – Symbol number corresponding to TOKEN-NUM as returned by yylex, with out-of-bounds checking. More... | |
#define | YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State]) |
Accessing symbol of state STATE. More... | |
#define | YYPACT_NINF (-102) |
#define | yypact_value_is_default(Yyn) ((Yyn) == YYPACT_NINF) |
#define | YYTABLE_NINF (-1) |
#define | yytable_value_is_error(Yyn) 0 |
#define | yyerrok (yyerrstatus = 0) |
#define | yyclearin (yychar = YYEMPTY) |
#define | YYACCEPT goto yyacceptlab |
#define | YYABORT goto yyabortlab |
#define | YYERROR goto yyerrorlab |
#define | YYNOMEM goto yyexhaustedlab |
#define | YYRECOVERING() (!!yyerrstatus) |
#define | YYBACKUP(Token, Value) |
#define | YYERRCODE YYUNDEF |
Backward compatibility with an undocumented macro. More... | |
#define | YYDPRINTF(Args) ((void) 0) |
Enable debugging if requested. More... | |
#define | YY_SYMBOL_PRINT(Title, Kind, Value, Location) |
#define | YY_STACK_PRINT(Bottom, Top) |
#define | YY_REDUCE_PRINT(Rule) |
#define | YYINITDEPTH 200 |
!YYDEBUG More... | |
#define | YYMAXDEPTH 10000 |
YYMAXDEPTH – maximum size the stacks can grow to (effective only if the built-in stack extension method is used). More... | |
#define | YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) |
Typedefs | |
typedef enum yytokentype | yytoken_kind_t |
typedef union YYSTYPE | YYSTYPE |
typedef enum yysymbol_kind_t | yysymbol_kind_t |
typedef signed char | yytype_int8 |
On compilers that do not define PTRDIFF_MAX etc., make sure <limits.h> and (if available) <stdint.h> are included so that the code can choose integer types of a good width. More... | |
typedef short | yytype_int16 |
typedef unsigned char | yytype_uint8 |
Work around bug in HP-UX 11.23, which defines these macros incorrectly for preprocessor constants. More... | |
typedef unsigned short | yytype_uint16 |
typedef yytype_uint8 | yy_state_t |
Stored state numbers (used for stacks). More... | |
typedef int | yy_state_fast_t |
State numbers in computations. More... | |
Functions | |
void | tpips_set_line_to_parse (string) |
void | tpips_lex_print_pos (FILE *) |
void | yyerror (const char *) |
YYERROR manages a syntax error while reading an object. More... | |
static void | free_owner_content (res_or_rule *pr) |
static void | set_env_log_and_free (string var, string val) |
static bool | perform (bool(*)(const char *, const char *), res_or_rule *) |
forward. More... | |
static void | try_to_parse_everything_just_in_case (void) |
static bool | tp_set_current_module (const char *name) |
try hard to open a module. More... | |
static bool | display_a_resource (const char *rname, const char *mname) |
display a resource using $PAGER if defined and stdout on a tty. More... | |
static bool | remove_a_resource (const char *rname, const char *mname) |
static bool | touch_a_resource (const char *rname, const char *mname) |
tell pipsdbm that the resource is up to date. More... | |
static bool | just_show (const char *rname, const char *mname) |
static void | tp_system (const char *s) |
static bool | tp_close_the_workspace (const char *s) |
static void | tp_some_info (const char *about) |
static gen_array_t | get_main (void) |
Returns a newgen array with the main inside. More... | |
static void | process_file_list (const gen_array_t a) |
int | tp_parse (void) |
void * | malloc (YYSIZE_T) |
void | free (void *) |
static void | yydestruct (const char *yymsg, yysymbol_kind_t yykind, YYSTYPE *yyvaluep) |
-------------------------------------------—. More... | |
Variables | |
const char * | soft_revisions |
First part of user prologue. More... | |
const char * | soft_date |
const char * | cc_version |
bool | tpips_execution_mode |
cproto-generated files More... | |
bool | consistency_enforced_p |
Pipsmake does not enforce consistency when properties are changed. More... | |
static bool | processing_started_p =false |
YYSTYPE | tp_lval |
static const yytype_int8 | yytranslate [] |
YYTRANSLATE[TOKEN-NUM] – Symbol number corresponding to TOKEN-NUM as returned by yylex. More... | |
static const yytype_int16 | yypact [] |
YYPACT[STATE-NUM] – Index in YYTABLE of the portion describing STATE-NUM. More... | |
static const yytype_int8 | yydefact [] |
YYDEFACT[STATE-NUM] – Default reduction number in state STATE-NUM. More... | |
static const yytype_int16 | yypgoto [] |
YYPGOTO[NTERM-NUM]. More... | |
static const yytype_uint8 | yydefgoto [] |
YYDEFGOTO[NTERM-NUM]. More... | |
static const yytype_uint8 | yytable [] |
YYTABLE[YYPACT[STATE-NUM]] – What to do in state STATE-NUM. More... | |
static const yytype_uint8 | yycheck [] |
static const yytype_int8 | yystos [] |
YYSTOS[STATE-NUM] – The symbol kind of the accessing symbol of state STATE-NUM. More... | |
static const yytype_int8 | yyr1 [] |
YYR1[RULE-NUM] – Symbol kind of the left-hand side of rule RULE-NUM. More... | |
static const yytype_int8 | yyr2 [] |
YYR2[RULE-NUM] – Number of symbols on the right-hand side of rule RULE-NUM. More... | |
int | yychar |
Lookahead token kind. More... | |
YYSTYPE | yylval |
The semantic value of the lookahead symbol. More... | |
int | yynerrs |
Number of syntax errors so far. More... | |
#define YY_ACCESSING_SYMBOL | ( | State | ) | YY_CAST (yysymbol_kind_t, yystos[State]) |
#define YY_TP_Y_TAB_H_INCLUDED |
#define YYBACKUP | ( | Token, | |
Value | |||
) |
#define YYBISON 30802 |
A Bison parser, made by GNU Bison 3.8.2.
Bison implementation for Yacc-like parsers in C
Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.
As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work under terms of your choice, so long as that work isn't itself a parser generator using the skeleton or a modified version thereof as a parser skeleton. Alternatively, if you modify or redistribute the parser skeleton itself, you may (at your option) remove this special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception.
This special exception was added by the Free Software Foundation in version 2.2 of Bison.
C LALR(1) parser skeleton written by Richard Stallman, by simplifying the original so-called "semantic" parser.
DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, especially those whose name start with YY_ or yy_. They are private implementation details that can be changed or removed.
All symbols defined below should begin with yy or YY, to avoid infringing on user name space. This should be done even for local variables, as they might otherwise be expanded by user macros. There are some unavoidable exceptions within include files to define necessary library symbols; they are noted "INFRINGES ON
USER NAME SPACE" below.
Identify Bison output, and Bison version.
#define YYCOPY | ( | Dst, | |
Src, | |||
Count | |||
) |
Copy COUNT objects from SRC to DST.
The source and destination do not overlap.
#define YYDPRINTF | ( | Args | ) | ((void) 0) |
#define YYERRCODE YYUNDEF |
#define YYERROR_VERBOSE 1 /**MUCH better error messages with bison */ |
#define YYFINAL 114 |
#define YYINITDEPTH 200 |
#define YYMAXDEPTH 10000 |
YYMAXDEPTH – maximum size the stacks can grow to (effective only if the built-in stack extension method is used).
Do not make this value too large; the results are undefined if YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) evaluated with infinite-precision integer arithmetic.
#define yypact_value_is_default | ( | Yyn | ) | ((Yyn) == YYPACT_NINF) |
#define yyparse | ( | void | ) | tp_parse |
------—.
Substitute the variable and function names.
| yyparse. | `-------—
Number of tokens to shift before error messages enabled.
Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere.
Their size.
The state stack: array, bottom, top.
The semantic value stack: array, bottom, top.
The return value of yyparse.
Lookahead symbol kind.
The variables used to return semantic value and location from the action routines.
The number of symbols on the RHS of the reduced rule. Keep to zero when no symbol should be popped.
Cause a token to be read.
--------------------------------------------------------—. | yynewstate – push a new state, which is found in yystate. | `---------------------------------------------------------—
In all cases, when you get here, the value and location stacks have just been pushed. So pushing a state here evens the stacks.
----------------------------------------------------------------—. | yysetstate – set current state (the top of the stack) to yystate. | `-----------------------------------------------------------------—
Get the current used size of the three stacks, in elements.
defined YYSTACK_RELOCATE
Extend the stack our own way.
!defined yyoverflow && !defined YYSTACK_RELOCATE
-------—. | yybackup. | `--------—
Do appropriate processing given the current state. Read a lookahead token if we need one and don't already have one.
First try to decide what to do without reference to lookahead token.
Not known => get a lookahead token if don't already have one.
YYCHAR is either empty, or end-of-input, or a valid lookahead.
The scanner already issued an error message, process directly to error recovery. But do not keep the error token as lookahead, it is too special and may lead us to an endless loop in error recovery.
If the proper action on seeing token YYTOKEN is to reduce or to detect an error, take that action.
Count tokens shifted since error; after three, turn off error status.
Shift the lookahead token.
Discard the shifted token.
-------------------------------------------------------—. | yydefault – do the default action for the current state. | `--------------------------------------------------------—
-------------------------—. | yyreduce – do a reduction. | `--------------------------—
yyn is the number of a rule to reduce with.
If YYLEN is nonzero, implement the default value of the action: '$$ = $1'.
Otherwise, the following line sets YYVAL to garbage. This behavior is undocumented and Bison users should not rely upon it. Assigning to YYVAL unconditionally makes the parser a bit smaller, and it avoids a GCC warning that YYVAL may be used uninitialized.
commands: commands command
command: TK_ENDOFLINE
may be empty!
command: i_open
command: i_create
command: i_close
command: i_delete
command: i_make
command: i_apply
command: i_capply
command: i_display
command: error
i_quit: TK_QUIT TK_ENDOFLINE
i_exit: TK_EXIT TK_ENDOFLINE
rather rough!
i_version: TK_VERSION TK_ENDOFLINE
i_help: TK_HELP TK_NAME TK_ENDOFLINE
i_help: TK_HELP TK_ENDOFLINE
i_setprop: TK_SET_PROPERTY TK_LINE TK_ENDOFLINE
i_shell: TK_SHELL TK_ENDOFLINE
i_shell: TK_SHELL TK_LINE TK_ENDOFLINE
i_unknown: TK_UNKNOWN TK_ENDOFLINE
i_echo: TK_ECHO TK_LINE TK_ENDOFLINE
i_echo: TK_ECHO TK_ENDOFLINE
i_info: TK_INFO TK_NAME TK_ENDOFLINE
i_cd: TK_CDIR TK_NAME TK_ENDOFLINE
i_pwd: TK_PWD TK_ENDOFLINE
i_getenv: TK_GET_ENVIRONMENT TK_NAME TK_ENDOFLINE
i_setenv: TK_SET_ENVIRONMENT TK_NAME TK_NAME TK_ENDOFLINE
i_setenv: TK_SET_ENVIRONMENT TK_NAME TK_EQUAL TK_NAME TK_ENDOFLINE
i_setenv: TK_SET_ENVIRONMENT TK_NAME TK_A_STRING TK_ENDOFLINE
i_setenv: TK_SET_ENVIRONMENT TK_NAME TK_EQUAL TK_A_STRING TK_ENDOFLINE
i_setenv: TK_SET_ENVIRONMENT TK_NAME filename_list TK_ENDOFLINE
i_setenv: TK_SET_ENVIRONMENT TK_NAME TK_EQUAL filename_list TK_ENDOFLINE
i_setenv: TK_SET_ENVIRONMENT TK_NAME TK_INT TK_ENDOFLINE
i_setenv: TK_SET_ENVIRONMENT TK_NAME TK_EQUAL TK_INT TK_ENDOFLINE
i_unsetenv: TK_UNSET_ENVIRONMENT TK_NAME TK_ENDOFLINE
i_timeout: TK_TIMEOUT TK_INT TK_ENDOFLINE
i_checkpoint: TK_CHECKPOINT TK_ENDOFLINE
i_open: TK_OPEN workspace_name TK_ENDOFLINE
Ok, we got it ! Now we select it:
workspace_name: TK_NAME
i_create: TK_CREATE workspace_name filename_list TK_ENDOFLINE
i_close: TK_CLOSE TK_ENDOFLINE
i_close: TK_CLOSE TK_NAME TK_ENDOFLINE
i_delete: TK_DELETE workspace_name TK_ENDOFLINE
In case of problem, user_error() has been called, so it is OK now !!
i_module: TK_MODULE TK_NAME TK_ENDOFLINE
trupper($2,$2)
i_make: TK_MAKE resource_id TK_ENDOFLINE
i_apply: TK_APPLY rule_id TK_ENDOFLINE
i_capply: TK_CAPPLY rule_id TK_ENDOFLINE
i_display: TK_DISPLAY resource_id TK_ENDOFLINE
i_touch: TK_TOUCH resource_id TK_ENDOFLINE
i_show: TK_SHOW resource_id TK_ENDOFLINE
i_rm: TK_REMOVE resource_id TK_ENDOFLINE
i_activate: TK_ACTIVATE rulename TK_ENDOFLINE
i_checkactive: TK_CHECKACTIVE resourcename TK_ENDOFLINE
i_get: TK_GET_PROPERTY propname TK_ENDOFLINE
i_source: TK_SOURCE filename_list TK_ENDOFLINE
filename_list: filename_list filename
filename_list: filename
resource_id: resourcename owner
rule_id: phasename owner
owner: TK_OPENPAREN TK_OWNER_ALL TK_CLOSEPAREN
owner: TK_OPENPAREN TK_OWNER_ALLFUNC TK_CLOSEPAREN
owner: TK_OPENPAREN TK_OWNER_ALLCU TK_CLOSEPAREN
owner: TK_OPENPAREN TK_OWNER_PROGRAM TK_CLOSEPAREN
owner: TK_OPENPAREN TK_OWNER_MAIN TK_CLOSEPAREN
owner: TK_OPENPAREN TK_OWNER_MODULE TK_CLOSEPAREN
owner: TK_OPENPAREN TK_OWNER_CALLEES TK_CLOSEPAREN
owner: TK_OPENPAREN TK_OWNER_CALLERS TK_CLOSEPAREN
owner: TK_OPENPAREN list_of_owner_name TK_CLOSEPAREN
owner: empty
list_of_owner_name: TK_NAME
list_of_owner_name: list_of_owner_name TK_NAME
strupper($2,$2)
list_of_owner_name: list_of_owner_name TK_COMMA TK_NAME
strupper($3,$3)
propname: TK_NAME
phasename: TK_NAME
resourcename: TK_NAME
User semantic actions sometimes alter yychar, and that requires that yytoken be updated with the new translation. We take the approach of translating immediately before every use of yytoken. One alternative is translating here after every semantic action, but that translation would be missed if the semantic action invokes YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an incorrect destructor might then be invoked immediately. In the case of YYERROR or YYBACKUP, subsequent parser actions might lead to an incorrect destructor call or verbose syntax error message before the lookahead is translated.
Now 'shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by.
----------------------------------—. | yyerrlab – here on detecting error. | `-----------------------------------—
Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary.
If not already recovering from an error, report this error.
If just tried and failed to reuse lookahead token after an error, discard it.
Return failure if at end of input.
Else will try to reuse lookahead token after shifting the error token.
-----------------------------------------------—. | yyerrorlab – error raised explicitly by YYERROR. | `------------------------------------------------—
Pacify compilers when the user code never invokes YYERROR and the label yyerrorlab therefore never appears in user code.
Do not reclaim the symbols of the rule whose action triggered this YYERROR.
---------------------------------------------------------—. | yyerrlab1 – common code for both syntax error and YYERROR. | `----------------------------------------------------------—
Each real token shifted decrements this.
Pop stack until we find a state that shifts the error token.
Pop the current state because it cannot handle the error token.
Shift the error token.
---------------------------------—. | yyacceptlab – YYACCEPT comes here. | `----------------------------------—
-------------------------------—. | yyabortlab – YYABORT comes here. | `--------------------------------—
-------------------------------------------------------—. | yyexhaustedlab – YYNOMEM (memory exhaustion) comes here. | `--------------------------------------------------------—
------------------------------------------------------—. | yyreturnlab – parsing is finished, clean up and return. | `-------------------------------------------------------—
Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary.
Do not reclaim the symbols of the rule whose action triggered this YYABORT or YYACCEPT.
#define YYPOPSTACK | ( | N | ) | (yyvsp -= (N), yyssp -= (N)) |
#define YYSIZE_MAXIMUM |
#define YYSTACK_ALLOC YYMALLOC |
#define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM |
#define YYSTACK_BYTES | ( | N | ) |
The size of an array large to enough to hold all stacks, each with N elements.
#define YYSTACK_RELOCATE | ( | Stack_alloc, | |
Stack | |||
) |
Relocate STACK from its old location to the new one.
The local variables YYSIZE and YYSTACKSIZE give the old and new number of elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack.
#define YYTRANSLATE | ( | YYX | ) |
YYTRANSLATE(TOKEN-NUM) – Symbol number corresponding to TOKEN-NUM as returned by yylex, with out-of-bounds checking.
typedef int yy_state_fast_t |
typedef yytype_uint8 yy_state_t |
typedef enum yysymbol_kind_t yysymbol_kind_t |
typedef enum yytokentype yytoken_kind_t |
typedef short yytype_int16 |
typedef signed char yytype_int8 |
On compilers that do not define PTRDIFF_MAX etc., make sure <limits.h> and (if available) <stdint.h> are included so that the code can choose integer types of a good width.
INFRINGES ON USER NAME SPACE Narrow types that promote to a signed type and that can represent a signed or unsigned integer of at least N bits. In tables they can save space and decrease cache pressure. Promoting to a signed type helps avoid bugs in integer arithmetic.
typedef unsigned short yytype_uint16 |
typedef unsigned char yytype_uint8 |
Work around bug in HP-UX 11.23, which defines these macros incorrectly for preprocessor constants.
This workaround can likely be removed in 2023, as HPE has promised support for HP-UX 11.23 (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf.
enum yysymbol_kind_t |
!YY_TP_Y_TAB_H_INCLUDED
Symbol kind.
Definition at line 687 of file tp_yacc.c.
enum yytokentype |
Definition at line 543 of file tp_yacc.c.
|
static |
display a resource using $PAGER if defined and stdout on a tty.
Should tell about what it is? What about special formats, such as graphs and all?
Definition at line 175 of file tp_yacc.c.
References build_view_file(), free(), jpips_is_running, jpips_tag2(), pips_user_error, ret, safe_display(), and tp_set_current_module().
void free | ( | void * | ) |
Referenced by display_a_resource(), free_owner_content(), perform(), and set_env_log_and_free().
|
static |
Definition at line 121 of file tp_yacc.c.
References free(), gen_array_full_free(), res_or_rule::the_name, and res_or_rule::the_owners.
Referenced by perform().
|
static |
Returns a newgen array with the main inside.
If no main is found, try to build all callees to parse all sources and maybe find it.
FI: since the preprocessor has already analyzed all source code and detect main functions, what do you expect by parsing its result?
else try something else just in case... well, it looks rather useless, maybe.
Definition at line 415 of file tp_yacc.c.
References db_get_module_list(), entity_main_module_p(), entity_undefined_p, gen_array_append(), gen_array_dupappend(), GEN_ARRAY_FOREACH, gen_array_full_free(), gen_array_make(), get_first_main_module(), local_name_to_top_level_entity(), pips_user_error, pips_user_warning, string_undefined_p, and try_to_parse_everything_just_in_case().
|
static |
now returns the name of the file.
Definition at line 234 of file tp_yacc.c.
References db_get_memory_resource(), db_resource_p(), displayable_file_p(), fprintf(), and pips_user_warning.
void* malloc | ( | YYSIZE_T | ) |
|
static |
forward.
perform "what" to all resources in "res".
res is freed. Several rules call it: display, apply...
Definition at line 259 of file tp_yacc.c.
References current, db_get_current_module_name(), db_get_current_workspace_name(), db_reset_current_module_name(), db_set_current_module_name(), free(), free_owner_content(), GEN_ARRAY_FOREACH, gen_array_nitems(), pips_user_error, pips_user_warning, strdup(), res_or_rule::the_name, res_or_rule::the_owners, and tpips_execution_mode.
Referenced by try_to_parse_everything_just_in_case().
|
static |
just in case, maybe tpips_init is not yet performed.
this performs a throw...
humm...
Definition at line 460 of file tp_yacc.c.
References CATCH, fprintf(), gen_array_full_free(), gen_array_item(), gen_array_nitems(), pips_user_error, RETHROW, tpips_init_done, tpips_is_interactive, tpips_process_a_file(), tpips_set_line_to_parse(), TRY, UNCATCH, and user_exception_error.
|
static |
Definition at line 211 of file tp_yacc.c.
References db_delete_resource(), db_resource_p(), and pips_user_warning.
Definition at line 127 of file tp_yacc.c.
References concatenate(), free(), same_string_p, strdup(), and user_log().
|
static |
tell pipsdbm that the resource is up to date.
may be useful if some transformations are applied which do not change the results of some analyses. under the responsability of the user, obviously...
Definition at line 225 of file tp_yacc.c.
References db_resource_p(), db_touch_resource(), and pips_user_warning.
|
static |
Definition at line 328 of file tp_yacc.c.
References close_workspace(), current, db_get_current_workspace_name(), pips_debug, pips_user_error, same_string_p, and tpips_execution_mode.
|
static |
try hard to open a module.
Definition at line 153 of file tp_yacc.c.
References lazy_open_module(), pips_user_error, safe_make(), and try_to_parse_everything_just_in_case().
Referenced by display_a_resource().
|
static |
Definition at line 361 of file tp_yacc.c.
References db_get_current_module_name(), db_get_current_workspace_name(), db_get_module_list(), fprintf(), gen_array_full_free(), gen_array_item(), gen_array_nitems(), jpips_add_tag(), jpips_begin_tag(), jpips_end_tag(), jpips_is_running, jpips_tag2(), MAXPATHLEN, and same_string_p.
|
static |
generate user error if not interactive, so as to abort quickly in scripts...
Definition at line 308 of file tp_yacc.c.
References pips_user_error, pips_user_warning, tpips_is_interactive, and user_log().
void tpips_set_line_to_parse | ( | string | line | ) |
store line pointer
Definition at line 953 of file tp_lex.c.
Referenced by process_file_list().
|
static |
Definition at line 141 of file tp_yacc.c.
References db_get_module_list(), perform(), safe_make(), strdup(), res_or_rule::the_name, and res_or_rule::the_owners.
Referenced by get_main(), and tp_set_current_module().
|
static |
-------------------------------------------—.
| Release the memory associated to this symbol. | `--------------------------------------------—
Definition at line 1609 of file tp_yacc.c.
References YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN, YY_IGNORE_MAYBE_UNINITIALIZED_END, YY_SYMBOL_PRINT, and YY_USE.
void yyerror | ( | const char * | s | ) |
YYERROR manages a syntax error while reading an object.
work around cproto 4.7t issue
YYERROR manages a syntax error while reading an object.
symbols from readmakefile.y
work around cproto 4.7t issue
Definition at line 1927 of file genread_yacc.c.
References fatal(), fprintf(), genread_input(), newgen_lexer_position(), pips_internal_error, pipsmake_in, and yyerror_lex_part().
|
extern |
|
extern |
First part of user prologue.
ri needed for statement_mapping in pipsdbm...
First part of user prologue.
Definition at line 33 of file revisions.c.
|
extern |
|
extern |
cproto-generated files
cproto-generated files
Definition at line 89 of file tpips.h.
Referenced by perform(), and tp_close_the_workspace().
|
static |
|
static |
YYDEFACT[STATE-NUM] – Default reduction number in state STATE-NUM.
Performed when YYTABLE does not specify something else to do. Zero means the default is an error.
|
static |
YYSTYPE yylval |
|
static |
YYPACT[STATE-NUM] – Index in YYTABLE of the portion describing STATE-NUM.
|
static |
YYPGOTO[NTERM-NUM].
|
static |
YYR1[RULE-NUM] – Symbol kind of the left-hand side of rule RULE-NUM.
|
static |
YYR2[RULE-NUM] – Number of symbols on the right-hand side of rule RULE-NUM.
|
static |
YYSTOS[STATE-NUM] – The symbol kind of the accessing symbol of state STATE-NUM.
|
static |
YYTABLE[YYPACT[STATE-NUM]] – What to do in state STATE-NUM.
If positive, shift that token. If negative, reduce the rule whose number is the opposite. If YYTABLE_NINF, syntax error.
|
static |