%option noyywrap
%{
-#include"gs/gs_private.h"
-#include"gs/parse.yy.h"
+#include"DataDesc/gs_private.h"
+#include"DataDesc/parse.yy.h"
#include <string.h>
YY_BUFFER_STATE input_buffer;
FILE *file_to_parse;
- int gs_parse_line_pos = 1;
- int gs_parse_char_pos = 0;
- int gs_parse_tok_num = 0;
+ int gras_datadesc_parse_line_pos = 1;
+ int gras_datadesc_parse_char_pos = 0;
+ int gras_datadesc_parse_tok_num = 0;
%}
%x comment foo str
%%
int comment_caller=0;
- char string_buf[GS_PARSE_MAX_STR_CONST];
+ char string_buf[GRAS_DATADESC_PARSE_MAX_STR_CONST];
char *string_buf_ptr = NULL;
"//"[^\n]*
<comment>[^*\n]* /* eat anything that's not a '*' */
<comment>"*"+[^*/\n]* /* eat up '*'s not followed by '/'s */
-<comment>\n {++gs_parse_line_pos;gs_parse_char_pos=0;}
+<comment>\n {++gras_datadesc_parse_line_pos;gras_datadesc_parse_char_pos=0;}
<comment>"*"+"/" BEGIN(comment_caller);
-\" string_buf_ptr = string_buf; gs_parse_char_pos++; BEGIN(str);
+\" string_buf_ptr = string_buf; gras_datadesc_parse_char_pos++; BEGIN(str);
<str>\" { /* saw closing quote - all done */
BEGIN(INITIAL);
*string_buf_ptr = '\0';
yytext=string_buf;
- gs_parse_char_pos++;
- return GS_PARSE_TOKEN_WORD;
+ gras_datadesc_parse_char_pos++;
+ return GRAS_DATADESC_PARSE_TOKEN_WORD;
/* return string constant token type and
* value to parser
*/
/* error, constant is out-of-bounds */
*string_buf_ptr++ = result;
- gs_parse_char_pos++;
+ gras_datadesc_parse_char_pos++;
}
<str>\\[0-9]+ {
*/
}
-<str>\\n {*string_buf_ptr++ = '\n'; gs_parse_char_pos++;}
-<str>\\t {*string_buf_ptr++ = '\t'; gs_parse_char_pos++;}
-<str>\\r {*string_buf_ptr++ = '\r'; gs_parse_char_pos++;}
-<str>\\b {*string_buf_ptr++ = '\b'; gs_parse_char_pos++;}
-<str>\\f {*string_buf_ptr++ = '\f'; gs_parse_char_pos++;}
+<str>\\n {*string_buf_ptr++ = '\n'; gras_datadesc_parse_char_pos++;}
+<str>\\t {*string_buf_ptr++ = '\t'; gras_datadesc_parse_char_pos++;}
+<str>\\r {*string_buf_ptr++ = '\r'; gras_datadesc_parse_char_pos++;}
+<str>\\b {*string_buf_ptr++ = '\b'; gras_datadesc_parse_char_pos++;}
+<str>\\f {*string_buf_ptr++ = '\f'; gras_datadesc_parse_char_pos++;}
<str>\\(.|\n) {*string_buf_ptr++ = yytext[1];
if(yytext[1]=='\n') {
- ++gs_parse_line_pos;gs_parse_char_pos=0;
- } else { gs_parse_char_pos++;}
+ ++gras_datadesc_parse_line_pos;gras_datadesc_parse_char_pos=0;
+ } else { gras_datadesc_parse_char_pos++;}
}
<str>[^\\\n\"]+ {
while ( *yptr )
*string_buf_ptr++ = *yptr++;
- gs_parse_char_pos++;
+ gras_datadesc_parse_char_pos++;
}
-({letter}|{digit})* { gs_parse_char_pos+= strlen(yytext); return(GS_PARSE_TOKEN_WORD);}
-"{" { gs_parse_char_pos++; return(GS_PARSE_TOKEN_LP);}
-"}" { gs_parse_char_pos++;return(GS_PARSE_TOKEN_RP);}
-"*" { gs_parse_char_pos++;return(GS_PARSE_TOKEN_STAR);}
-";" { gs_parse_char_pos++;return(GS_PARSE_TOKEN_SEMI_COLON);}
-"," { gs_parse_char_pos++;return(GS_PARSE_TOKEN_COLON);}
-"\n" { gs_parse_line_pos++; gs_parse_char_pos=0;}
-. { gs_parse_char_pos++;}
+({letter}|{digit})* { gras_datadesc_parse_char_pos+= strlen(yytext); return(GRAS_DATADESC_PARSE_TOKEN_WORD);}
+"{" { gras_datadesc_parse_char_pos++; return(GRAS_DATADESC_PARSE_TOKEN_LP);}
+"}" { gras_datadesc_parse_char_pos++;return(GRAS_DATADESC_PARSE_TOKEN_RP);}
+"*" { gras_datadesc_parse_char_pos++;return(GRAS_DATADESC_PARSE_TOKEN_STAR);}
+";" { gras_datadesc_parse_char_pos++;return(GRAS_DATADESC_PARSE_TOKEN_SEMI_COLON);}
+"," { gras_datadesc_parse_char_pos++;return(GRAS_DATADESC_PARSE_TOKEN_COLON);}
+"\n" { gras_datadesc_parse_line_pos++; gras_datadesc_parse_char_pos=0;}
+. { gras_datadesc_parse_char_pos++;}
%%
/* {space}+ { return(TOKEN_SPACE);} */
-void gs_parse_dump(void) {
- switch(gs_parse_tok_num) {
- case GS_PARSE_TOKEN_LP : {printf("TOKEN_LP ");break;}
- case GS_PARSE_TOKEN_RP : {printf("TOKEN_RP ");break;}
- case GS_PARSE_TOKEN_WORD : {printf("TOKEN_WORD ");break;}
- // case GS_PARSE_TOKEN_SPACE : {printf("TOKEN_SPACE ");break;}
- // case GS_PARSE_TOKEN_COMMENT : {printf("TOKEN_COMMENT ");break;}
- case GS_PARSE_TOKEN_NEWLINE : {printf("TOKEN_NEWLINE\n");return;}
- case GS_PARSE_TOKEN_EMPTY : {printf("TOKEN_EMPTY\n");return;}
- default : {printf("Unknown token %d\n", gs_parse_tok_num);return;}
+void gras_datadesc_parse_dump(void) {
+ switch(gras_datadesc_parse_tok_num) {
+ case GRAS_DATADESC_PARSE_TOKEN_LP : {printf("TOKEN_LP ");break;}
+ case GRAS_DATADESC_PARSE_TOKEN_RP : {printf("TOKEN_RP ");break;}
+ case GRAS_DATADESC_PARSE_TOKEN_WORD : {printf("TOKEN_WORD ");break;}
+ // case GRAS_DATADESC_PARSE_TOKEN_SPACE : {printf("TOKEN_SPACE ");break;}
+ // case GRAS_DATADESC_PARSE_TOKEN_COMMENT : {printf("TOKEN_COMMENT ");break;}
+ case GRAS_DATADESC_PARSE_TOKEN_NEWLINE : {printf("TOKEN_NEWLINE\n");return;}
+ case GRAS_DATADESC_PARSE_TOKEN_EMPTY : {printf("TOKEN_EMPTY\n");return;}
+ default : {printf("Unknown token %d\n", gras_datadesc_parse_tok_num);return;}
}
- printf("-->%s<-- [line %d, pos %d]\n",yytext,gs_parse_line_pos,gs_parse_char_pos);
+ printf("-->%s<-- [line %d, pos %d]\n",yytext,gras_datadesc_parse_line_pos,gras_datadesc_parse_char_pos);
return;
}
-int gs_parse_lex_n_dump(void) {
- gs_parse_tok_num = gs_parse_lex();
+int gras_datadesc_parse_lex_n_dump(void) {
+ gras_datadesc_parse_tok_num = gras_datadesc_parse_lex();
// voir_val();
- // gs_parse_char_pos += strlen(yytext);
- return(gs_parse_tok_num);
+ // gras_datadesc_parse_char_pos += strlen(yytext);
+ return(gras_datadesc_parse_tok_num);
}
-void gs_parse_pointer_init(const char *file) {
+void gras_datadesc_parse_pointer_init(const char *file) {
file_to_parse = fopen(file,"r");
input_buffer = yy_create_buffer( file_to_parse, 10 );
yy_switch_to_buffer(input_buffer);
- gs_parse_line_pos = 1;
- gs_parse_char_pos = 0;
- gs_parse_tok_num = 0;
+ gras_datadesc_parse_line_pos = 1;
+ gras_datadesc_parse_char_pos = 0;
+ gras_datadesc_parse_tok_num = 0;
}
-void gs_parse_pointer_close(void) {
+void gras_datadesc_parse_pointer_close(void) {
yy_delete_buffer(input_buffer);
fclose(file_to_parse);
- gs_parse_line_pos = 1;
- gs_parse_char_pos = 0;
- gs_parse_tok_num = 0;
+ gras_datadesc_parse_line_pos = 1;
+ gras_datadesc_parse_char_pos = 0;
+ gras_datadesc_parse_tok_num = 0;
}
-void gs_parse_pointer_string_init(const char *string_to_parse) {
+void gras_datadesc_parse_pointer_string_init(const char *string_to_parse) {
input_buffer = yy_scan_string (string_to_parse);
yy_switch_to_buffer(input_buffer);
- gs_parse_line_pos = 1;
- gs_parse_char_pos = 0;
- gs_parse_tok_num = 0;
+ gras_datadesc_parse_line_pos = 1;
+ gras_datadesc_parse_char_pos = 0;
+ gras_datadesc_parse_tok_num = 0;
}
-void gs_parse_pointer_string_close(void) {
+void gras_datadesc_parse_pointer_string_close(void) {
yy_delete_buffer(input_buffer);
- gs_parse_line_pos = 1;
- gs_parse_char_pos = 0;
- gs_parse_tok_num = 0;
+ gras_datadesc_parse_line_pos = 1;
+ gras_datadesc_parse_char_pos = 0;
+ gras_datadesc_parse_tok_num = 0;
}
// Local variables: