Clan
0.8.0
|
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <stdlib.h>
#include <osl/vector.h>
#include <osl/relation.h>
#include <osl/relation_list.h>
#include <osl/statement.h>
#include <osl/scop.h>
#include <parser.h>
#include <clan/macros.h>
#include <clan/symbol.h>
#include <clan/options.h>
#include <unistd.h>
Go to the source code of this file.
#define EOB_ACT_CONTINUE_SCAN 0 |
#define EOB_ACT_END_OF_FILE 1 |
#define EOB_ACT_LAST_MATCH 2 |
#define FLEX_SCANNER |
#define FULLCOMMENT 2 |
#define LINECOMMENT 1 |
#define UINT16_MAX (65535U) |
#define UINT32_MAX (4294967295U) |
#define unput | ( | c | ) | yyunput( c, (yytext_ptr) ) |
#define YY_AT_BOL | ( | ) | (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) |
#define YY_BUF_SIZE 16384 |
#define YY_BUFFER_EOF_PENDING 2 |
#define YY_BUFFER_NEW 0 |
Definition at line 235 of file scanner.c.
Referenced by yy_flush_buffer(), and yy_scan_buffer().
#define YY_BUFFER_NORMAL 1 |
#define YY_CURRENT_BUFFER |
( (yy_buffer_stack) \ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ : NULL)
Definition at line 263 of file scanner.c.
Referenced by clan_scanner_free(), clan_scanner_initialize(), yy_flush_buffer(), yy_init_buffer(), yylex_destroy(), yypop_buffer_state(), and yypush_buffer_state().
#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] |
Definition at line 270 of file scanner.c.
Referenced by yylex_destroy(), yypop_buffer_state(), and yypush_buffer_state().
#define YY_DECL_IS_OURS 1 |
#define YY_DO_BEFORE_ACTION |
(yytext_ptr) = yy_bp; \ yyleng = (yy_size_t) (yy_cp - yy_bp); \ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp;
#define YY_END_OF_BUFFER 119 |
#define YY_END_OF_BUFFER_CHAR 0 |
Definition at line 140 of file scanner.c.
Referenced by yy_flush_buffer(), yy_scan_buffer(), and yy_scan_bytes().
#define YY_EXIT_FAILURE 2 |
Definition at line 2522 of file scanner.c.
Referenced by yy_fatal_error().
#define YY_EXTRA_TYPE void * |
#define YY_FATAL_ERROR | ( | msg | ) | yy_fatal_error( msg ) |
Definition at line 935 of file scanner.c.
Referenced by yy_scan_buffer(), yy_scan_bytes(), and yyensure_buffer_stack().
#define YY_FLEX_MAJOR_VERSION 2 |
#define YY_FLEX_MINOR_VERSION 5 |
#define YY_FLEX_SUBMINOR_VERSION 35 |
#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER ) |
#define YY_INPUT | ( | buf, | |
result, | |||
max_size | |||
) |
if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ yy_size_t n; \ for ( n = 0; n < max_size && \ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ if ( c == '\n' ) \ buf[n++] = (char) c; \ if ( c == EOF && ferror( yyin ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ result = n; \ } \ else \ { \ errno=0; \ while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ { \ if( errno != EINTR) \ { \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ break; \ } \ errno=0; \ clearerr(yyin); \ } \ }\ \
#define YY_INT_ALIGNED short int |
#define YY_LESS_LINENO | ( | n | ) |
#define YY_MORE_ADJ 0 |
#define yy_new_buffer yy_create_buffer |
#define YY_NEW_FILE yyrestart(yyin ) |
#define YY_NO_INPUT 1 |
#define YY_NUM_RULES 118 |
#define YY_READ_BUF_SIZE 8192 |
#define YY_RESTORE_YY_MORE_OFFSET |
#define YY_RULE_SETUP YY_USER_ACTION |
#define YY_SC_TO_UI | ( | c | ) | ((unsigned int) (unsigned char) c) |
#define yy_set_bol | ( | at_bol | ) |
{ \ if ( ! YY_CURRENT_BUFFER ){\ yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ yy_create_buffer(yyin,YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ }
#define yy_set_interactive | ( | is_interactive | ) |
{ \ if ( ! YY_CURRENT_BUFFER ){ \ yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ yy_create_buffer(yyin,YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ }
#define YY_SKIP_YYWRAP |
#define YY_START_STACK_INCR 25 |
#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) |
#define YY_STATE_EOF | ( | state | ) | (YY_END_OF_BUFFER + state + 1) |
#define YY_STRUCT_YY_BUFFER_STATE |
#define YY_TYPEDEF_YY_BUFFER_STATE |
#define YY_TYPEDEF_YY_SIZE_T |
#define YY_USER_ACTION |
#define yyless | ( | n | ) |
do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ *yy_cp = (yy_hold_char); \ YY_RESTORE_YY_MORE_OFFSET \ (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 )
#define yyless | ( | n | ) |
do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = (yy_hold_char); \ (yy_c_buf_p) = yytext + yyless_macro_arg; \ (yy_hold_char) = *(yy_c_buf_p); \ *(yy_c_buf_p) = '\0'; \ yyleng = yyless_macro_arg; \ } \ while ( 0 )
#define YYTABLES_NAME "yytables" |
#define yyterminate | ( | ) | return YY_NULL |
#define yytext_ptr yytext |
typedef short int flex_int16_t |
typedef int flex_int32_t |
typedef signed char flex_int8_t |
typedef unsigned short int flex_uint16_t |
typedef unsigned int flex_uint32_t |
typedef unsigned char flex_uint8_t |
typedef struct yy_buffer_state* YY_BUFFER_STATE |
typedef int yy_state_type |
int clan_scanner | ( | int | token, |
char * | message | ||
) |
clan_scanner function: This function achieves some basic work when Lex recognize something: it prints a log information if necessary for debugging, it updates the string scanner_latest_text with the string that have been read and returns the token if we are scanning a SCoP or the special token IGNORE otherwise.
token | The token code to send to Yacc for the Lex item. |
message | A string to be printed for debugging. |
Definition at line 2818 of file scanner.c.
References CLAN_DEBUG, CLAN_FALSE, CLAN_realloc, clan_scanner_count(), CLAN_TRUE, and IGNORE.
void clan_scanner_count | ( | ) |
clan_scanner_count function: this function updates the current line and column the scanner is reading.
Definition at line 2777 of file scanner.c.
References scanner_column.
Referenced by clan_scanner().
void clan_scanner_free | ( | ) |
clan_scanner_free function: this function frees the memory allocated for the scanner. It frees flex's buffer (it supposes there is only one buffer) since flex does never free it itself. WARNING: this is probably not portable...
Definition at line 2799 of file scanner.c.
References YY_CURRENT_BUFFER, and yy_delete_buffer().
Referenced by clan_parse(), and clan_parser_autoscop().
void clan_scanner_initialize | ( | ) |
clan_scanner_initialize function: this function initialises the scanner global variables with default values.
Definition at line 2735 of file scanner.c.
References CLAN_FALSE, CLAN_malloc, CLAN_UNDEFINED, yy_buffer_stack_top, YY_CURRENT_BUFFER, and yy_flush_buffer().
Referenced by clan_parse(), and clan_scanner_reinitialize().
void clan_scanner_reinitialize | ( | int | pragma, |
int | line, | ||
int | column | ||
) |
clan_scanner_reinitialize function: this function frees the temporary dynamic variables of the scanner and and reset the variables to default or input values. It is meant to be used for a clean restart after a parse error.
[in] | pragma | The initialization value of scanner_pragma. |
[in] | line | The initialization value of scanner_line. |
[in] | column | The initialization value of scanner_column. |
Definition at line 2763 of file scanner.c.
References clan_scanner_initialize().
Referenced by clan_parser_autoscop().
YY_BUFFER_STATE yy_create_buffer | ( | FILE * | file, |
int | size | ||
) |
void yy_delete_buffer | ( | YY_BUFFER_STATE | b | ) |
Referenced by clan_scanner_free(), yylex_destroy(), and yypop_buffer_state().
static void yy_fatal_error | ( | yyconst char | msg[] | ) | [static] |
static void yy_fatal_error | ( | yyconst char * | msg | ) | [static] |
Definition at line 2525 of file scanner.c.
References YY_EXIT_FAILURE.
void yy_flush_buffer | ( | YY_BUFFER_STATE | b | ) |
Discard all buffered characters. On the next scan, YY_INPUT will be called.
b | the buffer state to be flushed, usually YY_CURRENT_BUFFER . |
Definition at line 2315 of file scanner.c.
References yy_buffer_state::yy_at_bol, yy_buffer_state::yy_buf_pos, YY_BUFFER_NEW, yy_buffer_state::yy_buffer_status, yy_buffer_state::yy_ch_buf, YY_CURRENT_BUFFER, YY_END_OF_BUFFER_CHAR, yy_load_buffer_state(), and yy_buffer_state::yy_n_chars.
Referenced by clan_scanner_initialize(), and yy_init_buffer().
static int yy_get_next_buffer | ( | void | ) | [static] |
static yy_state_type yy_get_previous_state | ( | void | ) | [static] |
static void yy_init_buffer | ( | YY_BUFFER_STATE | b, |
FILE * | file | ||
) | [static] |
The main scanner function which does all the work.
Definition at line 2287 of file scanner.c.
References yy_buffer_state::yy_bs_column, yy_buffer_state::yy_bs_lineno, YY_CURRENT_BUFFER, yy_buffer_state::yy_fill_buffer, yy_flush_buffer(), yy_buffer_state::yy_input_file, and yy_buffer_state::yy_is_interactive.
static int yy_init_globals | ( | void | ) | [static] |
Definition at line 2628 of file scanner.c.
References yy_buffer_stack, yy_buffer_stack_max, yy_buffer_stack_top, yy_c_buf_p, yy_init, yy_start, yyin, and yyout.
Referenced by yylex_destroy().
static void yy_load_buffer_state | ( | void | ) | [static] |
Referenced by yy_flush_buffer(), yypop_buffer_state(), and yypush_buffer_state().
YY_BUFFER_STATE yy_scan_buffer | ( | char * | base, |
yy_size_t | size | ||
) |
Setup the input buffer state to scan directly from a user-specified character buffer.
base | the character buffer |
size | the size in bytes of the character buffer |
Definition at line 2442 of file scanner.c.
References yy_buffer_state::yy_at_bol, yy_buffer_state::yy_buf_pos, yy_buffer_state::yy_buf_size, YY_BUFFER_NEW, yy_buffer_state::yy_buffer_status, yy_buffer_state::yy_ch_buf, YY_END_OF_BUFFER_CHAR, YY_FATAL_ERROR, yy_buffer_state::yy_fill_buffer, yy_buffer_state::yy_input_file, yy_buffer_state::yy_is_interactive, yy_buffer_state::yy_is_our_buffer, yy_buffer_state::yy_n_chars, yy_switch_to_buffer(), and yyalloc().
Referenced by yy_scan_bytes().
YY_BUFFER_STATE yy_scan_bytes | ( | yyconst char * | yybytes, |
yy_size_t | _yybytes_len | ||
) |
Setup the input buffer state to scan the given bytes. The next call to yylex() will scan from a copy of bytes.
bytes | the byte buffer to scan |
len | the number of bytes in the buffer pointed to by bytes. |
Definition at line 2492 of file scanner.c.
References YY_END_OF_BUFFER_CHAR, YY_FATAL_ERROR, yy_buffer_state::yy_is_our_buffer, yy_scan_buffer(), and yyalloc().
Referenced by yy_scan_string().
YY_BUFFER_STATE yy_scan_string | ( | yyconst char * | yystr | ) |
Setup the input buffer state to scan a string. The next call to yylex() will scan from a copy of str.
yystr | a NUL-terminated string to scan |
Definition at line 2479 of file scanner.c.
References yy_scan_bytes().
void yy_switch_to_buffer | ( | YY_BUFFER_STATE | new_buffer | ) |
Referenced by yy_scan_buffer().
static yy_state_type yy_try_NUL_trans | ( | yy_state_type | current_state | ) | [static] |
Definition at line 2702 of file scanner.c.
Referenced by yy_scan_buffer(), yy_scan_bytes(), and yyensure_buffer_stack().
static void yyensure_buffer_stack | ( | void | ) | [static] |
Definition at line 2393 of file scanner.c.
References yy_buffer_stack, yy_buffer_stack_max, yy_buffer_stack_top, YY_FATAL_ERROR, yyalloc(), and yyrealloc().
Referenced by yypush_buffer_state().
void yyfree | ( | void * | ptr | ) |
Definition at line 2719 of file scanner.c.
Referenced by yylex_destroy().
int yyget_debug | ( | void | ) |
Definition at line 2618 of file scanner.c.
References yy_flex_debug.
YY_EXTRA_TYPE yyget_extra | ( | void | ) |
FILE * yyget_in | ( | void | ) |
yy_size_t yyget_leng | ( | void | ) |
int yyget_lineno | ( | void | ) |
FILE * yyget_out | ( | void | ) |
char * yyget_text | ( | void | ) |
int yylex | ( | void | ) |
int yylex_destroy | ( | void | ) |
Definition at line 2657 of file scanner.c.
References yy_buffer_stack, YY_CURRENT_BUFFER, YY_CURRENT_BUFFER_LVALUE, yy_delete_buffer(), yy_init_globals(), yyfree(), and yypop_buffer_state().
void yypop_buffer_state | ( | void | ) |
Removes and deletes the top of the stack, if present. The next element becomes the new top.
Definition at line 2374 of file scanner.c.
References yy_buffer_stack_top, YY_CURRENT_BUFFER, YY_CURRENT_BUFFER_LVALUE, yy_delete_buffer(), yy_did_buffer_switch_on_eof, and yy_load_buffer_state().
Referenced by yylex_destroy().
void yypush_buffer_state | ( | YY_BUFFER_STATE | new_buffer | ) |
Pushes the new state onto the stack. The new state becomes the current state. This function will allocate the stack if necessary.
new_buffer | The new state. |
Definition at line 2344 of file scanner.c.
References yy_buffer_stack_top, yy_c_buf_p, YY_CURRENT_BUFFER, YY_CURRENT_BUFFER_LVALUE, yy_did_buffer_switch_on_eof, yy_hold_char, yy_load_buffer_state(), yy_n_chars, and yyensure_buffer_stack().
Definition at line 2707 of file scanner.c.
Referenced by yyensure_buffer_stack().
void yyrestart | ( | FILE * | input_file | ) |
void yyset_debug | ( | int | debug_flag | ) |
void yyset_extra | ( | YY_EXTRA_TYPE | user_defined | ) |
void yyset_in | ( | FILE * | in_str | ) |
Set the input stream. This does not discard the current input buffer.
in_str | A readable stream. |
Definition at line 2608 of file scanner.c.
References yyin.
void yyset_lineno | ( | int | line_number | ) |
char* parser_record |
What we record
What we record (statement body)
Definition at line 126 of file parser.c.
Referenced by clan_parser_reinitialize(), clan_parser_state_initialize(), and yyparse().
int parser_recording |
Do we record what we read?
Boolean: do we record or not?
Definition at line 125 of file parser.c.
Referenced by clan_parser_state_initialize(), and yyparse().
char* scanner_clay |
int scanner_column |
Current column number
Definition at line 781 of file scanner.c.
Referenced by clan_parser_autoscop(), clan_scanner_count(), yyerror(), and yyparse().
int scanner_comment |
char* scanner_latest_text |
int scanner_line |
Current line number
Definition at line 780 of file scanner.c.
Referenced by clan_parser_autoscop(), yyerror(), and yyparse().
int scanner_parsing |
int scanner_pragma |
Between SCoP pragmas or not?
Definition at line 785 of file scanner.c.
Referenced by clan_parser_autoscop().
int scanner_scop_end |
SCoP ending line
Definition at line 784 of file scanner.c.
Referenced by clan_parser_autoscop(), and clan_scop_generate_coordinates().
SCoP starting line
Definition at line 783 of file scanner.c.
Referenced by clan_parser_autoscop(), and clan_scop_generate_coordinates().
int scanner_space |
yyconst flex_int16_t yy_accept[372] [static] |
yyconst flex_int16_t yy_base[381] [static] |
YY_BUFFER_STATE* yy_buffer_stack = 0 [static] |
Stack as an array.
Definition at line 255 of file scanner.c.
Referenced by yy_init_globals(), yyensure_buffer_stack(), and yylex_destroy().
size_t yy_buffer_stack_max = 0 [static] |
capacity of stack.
Definition at line 254 of file scanner.c.
Referenced by yy_init_globals(), and yyensure_buffer_stack().
size_t yy_buffer_stack_top = 0 [static] |
index of top of stack.
Definition at line 253 of file scanner.c.
Referenced by clan_scanner_initialize(), yy_init_globals(), yyensure_buffer_stack(), yypop_buffer_state(), and yypush_buffer_state().
char* yy_c_buf_p = (char *) 0 [static] |
Definition at line 278 of file scanner.c.
Referenced by yy_init_globals(), and yypush_buffer_state().
yyconst flex_int16_t yy_chk[651] [static] |
yyconst flex_int16_t yy_def[381] [static] |
int yy_did_buffer_switch_on_eof [static] |
Definition at line 285 of file scanner.c.
Referenced by yypop_buffer_state(), and yypush_buffer_state().
yyconst flex_int32_t yy_ec[256] [static] |
int yy_flex_debug = 0 |
Definition at line 707 of file scanner.c.
Referenced by yyget_debug().
char yy_hold_char [static] |
Definition at line 273 of file scanner.c.
Referenced by yypush_buffer_state().
int yy_init = 0 [static] |
Definition at line 279 of file scanner.c.
Referenced by yy_init_globals().
char* yy_last_accepting_cpos [static] |
yy_state_type yy_last_accepting_state [static] |
yyconst flex_int32_t yy_meta[71] [static] |
yy_size_t yy_n_chars [static] |
Definition at line 274 of file scanner.c.
Referenced by yypush_buffer_state().
yyconst flex_int16_t yy_nxt[651] [static] |
int yy_start = 0 [static] |
Definition at line 280 of file scanner.c.
Referenced by yy_init_globals().
Definition at line 275 of file scanner.c.
Referenced by yyget_leng().
int yylineno = 1 |
Definition at line 346 of file scanner.c.
Referenced by yyget_lineno().
FILE * yyout = (FILE *) 0 |
Definition at line 340 of file scanner.c.
Referenced by yy_init_globals(), yyget_out(), and yyset_out().
char * yytext |
Definition at line 716 of file scanner.c.
Referenced by yyget_text().