#include "acsim.h"
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <assert.h>
#include <ctype.h>
Include dependency graph for archc.parser.c:
Go to the source code of this file.
Classes | |
union | yyalloc |
union | YYSTYPE |
Defines | |
#define | YYBISON 1 |
#define | YYSKELETON_NAME "yacc.c" |
#define | YYPURE 0 |
#define | YYLSP_NEEDED 0 |
#define | INT 258 |
#define | STR 259 |
#define | DOT 260 |
#define | COMMA 261 |
#define | SEMICOLON 262 |
#define | COLON 263 |
#define | LT 264 |
#define | GT 265 |
#define | EQ 266 |
#define | RPAREN 267 |
#define | LPAREN 268 |
#define | LBRACK 269 |
#define | RBRACK 270 |
#define | LBRACE 271 |
#define | RBRACE 272 |
#define | SET_DECODER 273 |
#define | SET_ASM 274 |
#define | SET_CYCLES 275 |
#define | ID 276 |
#define | AC_ISA_UPPER 277 |
#define | ISA_CTOR 278 |
#define | AC_FORMAT 279 |
#define | AC_INSTR 280 |
#define | CYCLE_RANGE 281 |
#define | AC_ARCH 282 |
#define | AC_CACHE 283 |
#define | AC_ICACHE 284 |
#define | AC_DCACHE 285 |
#define | AC_MEM 286 |
#define | AC_PC 287 |
#define | AC_REGBANK 288 |
#define | AC_REG 289 |
#define | AC_STAGE 290 |
#define | AC_PIPE 291 |
#define | ARCH_CTOR 292 |
#define | AC_ISA 293 |
#define | AC_WORDSIZE 294 |
#define | AC_FETCHSIZE 295 |
#define | SET_ENDIAN 296 |
#define | BIND_TO 297 |
#define | YYDEBUG 1 |
#define | YYERROR_VERBOSE |
#define | ADD_DEBUG 1 |
#define | YYERROR_VERBOSE 1 |
#define | yystype YYSTYPE |
#define | YYSTYPE_IS_DECLARED 1 |
#define | YYSTYPE_IS_TRIVIAL 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 8 |
#define | YYLAST 177 |
#define | YYNTOKENS 43 |
#define | YYNNTS 55 |
#define | YYNRULES 86 |
#define | YYNSTATES 231 |
#define | YYUNDEFTOK 2 |
#define | YYMAXUTOK 297 |
#define | YYTRANSLATE(YYX) ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) |
#define | YYPACT_NINF -185 |
#define | YYTABLE_NINF -1 |
#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 () |
#define | YYFPRINTF fprintf |
#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 enum _commalist | commalist |
typedef enum _descr | description |
typedef enum _sto_unit | sto_unit |
typedef YYSTYPE | YYSTYPE |
typedef short | yysigned_char |
Enumerations | |
enum | yytokentype { INT = 258, STR = 259, DOT = 260, COMMA = 261, SEMICOLON = 262, COLON = 263, LT = 264, GT = 265, EQ = 266, RPAREN = 267, LPAREN = 268, LBRACK = 269, RBRACK = 270, LBRACE = 271, RBRACE = 272, SET_DECODER = 273, SET_ASM = 274, SET_CYCLES = 275, ID = 276, AC_ISA_UPPER = 277, ISA_CTOR = 278, AC_FORMAT = 279, AC_INSTR = 280, CYCLE_RANGE = 281, AC_ARCH = 282, AC_CACHE = 283, AC_ICACHE = 284, AC_DCACHE = 285, AC_MEM = 286, AC_PC = 287, AC_REGBANK = 288, AC_REG = 289, AC_STAGE = 290, AC_PIPE = 291, ARCH_CTOR = 292, AC_ISA = 293, AC_WORDSIZE = 294, AC_FETCHSIZE = 295, SET_ENDIAN = 296, BIND_TO = 297 } |
enum | _commalist { INSTR_L, STAGE_L, REG_L, PIPE_L, REGBANK_L, CACHE_L, MEM_L } |
enum | _descr { ISA_D, ARCH_D } |
enum | _sto_unit { BYTE = 1, KBYTE = 1024, MBYTE = 1048576, GBYTE = 1073741824 } |
Functions | |
void | yyerror (char *s) |
void | print_comment (FILE *output, char *description) |
int | parse_format (char **fieldstr, int sum_size, int size_limit, ac_dec_field **field_list_head, ac_dec_field **field_list_tail) |
void | add_format (ac_dec_format **head, ac_dec_format **tail, char *name, char *str) |
void | add_instr (char *name) |
void | add_pipe (char *name) |
void | add_stage (char *name, ac_stg_list **listp) |
void | add_storage (char *name, unsigned size, ac_sto_types type) |
int | yyparse () |
Variables | |
FILE * | output = NULL |
The output file being written. | |
char * | current_type |
The name of the type/format associated to the object currently being parsed. | |
char * | current_instr |
The name of the instruction currently being parsed. | |
char * | project_name |
Name of the ArchC project being processed. | |
char * | isa_filename |
Name for the isa class file. | |
char * | aux |
ac_dec_format * | format_ins_list |
ac_dec_format * | format_ins_list_tail |
Format List for instructions. | |
ac_dec_format * | format_reg_list |
Format List for registers. | |
ac_dec_format * | format_reg_list_tail |
ac_dec_instr * | instr_list |
Instruction List. | |
ac_dec_instr * | instr_list_tail |
ac_dec_instr * | pinstr |
ac_dec_field * | field_list = NULL |
Field List. | |
ac_dec_list * | pdec_list |
Decodification List. | |
ac_pipe_list * | pipe_list = NULL *ppipe *current_pipe=NULL *pipe_list_tail = NULL |
commalist | list_type |
Indicates what type of list of declarations is being parsed. | |
description | descrp |
Indicates what type of description is being parsed. | |
sto_unit | current_unit |
Indicates what storage unit is being used. | |
ac_sto_types | cache_type |
Indicates the type of cache being declared. | |
ac_sto_list * | fetch_device |
Indicates the device used for fetching instructions. | |
int | instr_num |
Number of Instructions. | |
int | declist_num |
Number of Decodification lists. | |
int | format_num |
Number of Formats. | |
int | const_count |
Number of Constants. | |
int | stage_num |
Number of Stages. | |
int | pipe_num |
Number of Pipelines. | |
int | wordsize |
Size of the word type in bits for the current project. | |
int | reg_width |
Bit width of registers in a regbank. | |
int | fetchsize |
Size of the fetch word type in bits for the current project. | |
int | line_num |
Input file line counter. | |
int | ac_tgt_endian |
Indicates the endianess of the host machine. | |
int | first_format = 1 largest_format_size=0 |
short * | top |
const char * | yysrc |
int | yytype |
YYSTYPE * | yyvaluep |
int | yychar |
YYSTYPE | yylval |
int | yynerrs |
Definition in file archc.parser.c.
|
Value: do { \ if (yydebug) \ yy_reduce_print (Rule); \ } while (0) |
|
Value: do { \ if (yydebug) \ yy_stack_print ((Bottom), (Top)); \ } while (0) |
|
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) Definition at line 1146 of file archc.parser.c. |
|
Value: do \ { \ register YYSIZE_T yyi; \ for (yyi = 0; yyi < (Count); yyi++) \ (To)[yyi] = (From)[yyi]; \ } \ while (0) Definition at line 724 of file archc.parser.c. |
|
Value: do { \ if (yydebug) \ YYFPRINTF Args; \ } while (0) Definition at line 1193 of file archc.parser.c. |
|
Value: do { \ if (yydebug) \ yysymprint Args; \ } while (0) Definition at line 1199 of file archc.parser.c. |
|
Value: do { \ if (yydebug) \ { \ YYFPRINTF (stderr, "%s ", Title); \ yysymprint (stderr, \ Token, Value); \ YYFPRINTF (stderr, "\n"); \ } \ } while (0) Definition at line 1205 of file archc.parser.c. |
|
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; Definition at line 1170 of file archc.parser.c. |
|
Value: ((N) * (sizeof (short) + sizeof (YYSTYPE)) \ + YYSTACK_GAP_MAXIMUM) Definition at line 713 of file archc.parser.c. |
|
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) Definition at line 740 of file archc.parser.c. |
|
Add a pipeline to pipe list.
Definition at line 506 of file archc.parser.c. References ac_pipe_list, _ac_pipe_list::id, _ac_pipe_list::name, _ac_pipe_list::next, pipe_list, pipe_num, and _ac_pipe_list::stages. |
|
Add stage to stage list.
Definition at line 533 of file archc.parser.c. References ac_stg_list, _ac_stg_list::id, _ac_stg_list::name, _ac_stg_list::next, and stage_num. |