summaryrefslogtreecommitdiff
path: root/tools/d2c/d2c_tok.l
diff options
context:
space:
mode:
Diffstat (limited to 'tools/d2c/d2c_tok.l')
-rw-r--r--tools/d2c/d2c_tok.l235
1 files changed, 0 insertions, 235 deletions
diff --git a/tools/d2c/d2c_tok.l b/tools/d2c/d2c_tok.l
deleted file mode 100644
index 300508d..0000000
--- a/tools/d2c/d2c_tok.l
+++ /dev/null
@@ -1,235 +0,0 @@
-
-%{
-
-typedef struct _rented_coder rented_coder;
-
-
-#include "d2c-d2c_gram.h"
-
-#include <ctype.h>
-#include <string.h>
-
-
-/* Tente de libérer autant de mémoire que possible... */
-void free_flex_memory(void) ;
-
-
-%}
-
-%option noyywrap
-%option nounput
-%option noinput
-%option yylineno
-%option stack
-%option noyy_top_state
-
-
-%x comments
-
-%x ins_name try_details ins_details
-%x encoding encoding_type encoding_content
-
-%x encoding_bits encoding_bits_size
-
-%x syntax syntax_name syntax_int syntax_ext
-
-%x conv_begin conv_content
-
-%x arg arg_binval arg_hexval
-
-%x hooks_begin hooks_content
-
-%x rules_begin rules_content rules_cond rules_cond_binval rules_cond_hexval rules_action rules_action_see rules_action_call
-
-
-%%
-
-
-[ \t\n]+ { }
-
-"/*" { BEGIN(comments); }
-<comments>"*/" { BEGIN(INITIAL); }
-<comments>[^*\n] { }
-<comments>"Copyright"[^\n]* { d2c_lval.string = strdup(yytext); return COPYRIGHT; }
-<comments>"*" { }
-<comments>"\n" { }
-
-
-"@title" { BEGIN(ins_name); return TITLE; }
-
-<ins_name>[ ][A-Za-z-]+ { d2c_lval.string = strdup(yytext + 1); BEGIN(try_details); return INS_NAME; }
-<try_details>[ ,/] { BEGIN(ins_details); }
-<try_details>[\n] { BEGIN(INITIAL); }
-
-<ins_details>[^\n]* { d2c_lval.cstring = yytext; return INS_DETAILS; }
-<ins_details>[\n] { BEGIN(INITIAL); }
-
-
-
-"@encoding" { BEGIN(encoding); return ENCODING; }
-
-<encoding>[ ] { }
-<encoding>"(" { BEGIN(encoding_type); }
-
-<encoding_type>[A-Za-z] { d2c_lval.string = strdup(yytext); return TYPE; }
-<encoding_type>[0-9]+ { d2c_lval.integer = atoi(yytext); return NUMBER; }
-<encoding_type>")" { BEGIN(encoding); }
-
-<encoding>"{" { BEGIN(encoding_content); }
-<encoding_content>[ \t\n]+ { }
-<encoding_content>"}" { BEGIN(INITIAL); }
-
-
-
-<encoding_content>"@half" { BEGIN(encoding_bits); return HALF; }
-<encoding_content>"@word" { BEGIN(encoding_bits); return WORD; }
-
-<encoding_bits>" " { }
-<encoding_bits>"\n" { BEGIN(encoding_content); }
-<encoding_bits>[A-Za-z_][A-Za-z0-9__]* { d2c_lval.string = strdup(yytext); return NAME; }
-
-<encoding_bits>"(" { BEGIN(encoding_bits_size); }
-<encoding_bits_size>[0-9]+ { d2c_lval.integer = atoi(yytext); return SIZE; }
-<encoding_bits_size>")" { BEGIN(encoding_bits); }
-
-<encoding_bits>[01] { d2c_lval.integer = atoi(yytext); return BIT; }
-
-
-
-<encoding_content>"@syntax" { BEGIN(syntax); return SYNTAX; }
-
-<syntax>[ ]+ { }
-<syntax>"\n" { BEGIN(encoding_content); }
-
-<syntax>[\"] { BEGIN(syntax_name); }
-<syntax_name>[^ \n\"]+ { d2c_lval.string = strdup(yytext); return OPERAND_NAME; }
-<syntax_name>[\"] { BEGIN(syntax); }
-
-<syntax>"{" { BEGIN(syntax_int); }
-<syntax_int>[^ \n}]+ { d2c_lval.string = strdup(yytext); return OPERAND_INTERNAL; }
-<syntax_int>"}" { BEGIN(syntax); }
-
-<syntax>"<" { BEGIN(syntax_ext); }
-<syntax_ext>[^ \n>]+ { d2c_lval.string = strdup(yytext); return OPERAND_VISIBLE; }
-<syntax_ext>">" { BEGIN(syntax); }
-
-
-
-<encoding_content>"@conv" { BEGIN(conv_begin); return CONV; }
-<conv_begin>[ ]+ { }
-<conv_begin>"{" { BEGIN(conv_content); }
-<conv_content>"}" { BEGIN(encoding_content); }
-
-<conv_content>[ \t\n]+ { }
-<conv_content>[A-Za-z_][A-Za-z0-9_]* {
- if (strcmp(yytext, "NOT") == 0) return NOT;
- else
- {
- d2c_lval.string = strdup(yytext);
- return NAME;
- }
- }
-<conv_content>"=" { return EQ; }
-<conv_content>"(" { yy_push_state(arg); return OP; }
-
-
-
-
-<arg>[A-Za-z_][A-Za-z0-9_]* {
- if (strcmp(yytext, "NOT") == 0) return NOT;
- else if (strcmp(yytext, "AND") == 0) return AND_LOG;
- else if (strcmp(yytext, "EOR") == 0) return EOR;
- else
- {
- d2c_lval.string = strdup(yytext);
- return NAME;
- }
- }
-<arg>[0-9][0-9]* { d2c_lval.integer = atoi(yytext); return NUMBER; }
-<arg>"'" { BEGIN(arg_binval); }
-<arg_binval>[01][01]* { d2c_lval.string = strdup(yytext); return BINVAL; }
-<arg_binval>"'" { BEGIN(arg); }
-<arg>"0x" { BEGIN(arg_hexval); }
-<arg_hexval>[0-9a-f][0-9a-f]* { d2c_lval.string = strdup(yytext); BEGIN(arg); return HEXVAL; }
-<arg>"," { return COMMA; }
-<arg>":" { return COLON; }
-<arg>"&" { return AND_LOG; }
-<arg>[ ]+ { }
-<arg>"(" { yy_push_state(arg); return OP; }
-<arg>")" { yy_pop_state(); return CP; }
-
-
-
-<encoding_content>"@hooks" { BEGIN(hooks_begin); return HOOKS; }
-<hooks_begin>[ ]+ { }
-<hooks_begin>"{" { BEGIN(hooks_content); }
-<hooks_content>"}" { BEGIN(encoding_content); }
-
-<hooks_content>[ \t\n]+ { }
-<hooks_content>[a-z_][a-z0-9_]* { d2c_lval.string = strdup(yytext); return NAME; }
-<hooks_content>"=" { return EQ; }
-
-
-
-<encoding_content>"@rules" { BEGIN(rules_begin); return RULES; }
-<rules_content>\/\/[^\n]+ { printf("SKIP '%s'\n", yytext); }
-<rules_begin>[ ]+ { }
-<rules_begin>"{" { BEGIN(rules_content); }
-<rules_content>[ \t\n]+ { }
-<rules_content>"}" { BEGIN(encoding_content); }
-
-<rules_content>"see " { BEGIN(rules_action_see); return SEE; }
-<rules_content>"unpredictable" { return UNPREDICTABLE; }
-<rules_content>"call" { BEGIN(rules_action_call); return CALL; }
-<rules_content>"chk_call" { BEGIN(rules_action_call); return CHK_CALL; }
-
-<rules_content>"if" { BEGIN(rules_cond); return IF; }
-<rules_cond>[ ]+ { }
-<rules_cond>"(" { return EXPR_START; }
-<rules_cond>[A-Za-z_][A-Za-z0-9_]* { d2c_lval.string = strdup(yytext); return NAME; }
-<rules_cond>"==" { return EQUAL; }
-<rules_cond>"'" { BEGIN(rules_cond_binval); }
-<rules_cond_binval>[01][01]* { d2c_lval.string = strdup(yytext); return BINVAL; }
-<rules_cond_binval>"'" { BEGIN(rules_cond); }
-<rules_cond>"0x" { BEGIN(rules_cond_hexval); }
-<rules_cond_hexval>[0-9a-f][0-9a-f]* { d2c_lval.string = strdup(yytext); BEGIN(rules_cond); return HEXVAL; }
-<rules_cond>")" { return EXPR_END; }
-<rules_cond>"&&" { return AND; }
-<rules_cond>"&" { return AND_LOG; }
-
-<rules_cond>";" { BEGIN(rules_action); return THEN; }
-<rules_action>[ ]+ { }
-
-<rules_action>"see " { BEGIN(rules_action_see); return SEE; }
-<rules_action_see>[^\n]* { d2c_lval.cstring = yytext; BEGIN(rules_content); return INS_DETAILS; }
-
-<rules_action>"unpredictable" { BEGIN(rules_content); return UNPREDICTABLE; }
-
-<rules_action>"call" { BEGIN(rules_action_call); return CALL; }
-<rules_action>"chk_call" { BEGIN(rules_action_call); return CHK_CALL; }
-<rules_action_call>[\t ]+ { }
-<rules_action_call>[A-Za-z_][A-Za-z0-9_]* { d2c_lval.string = strdup(yytext); return NAME; }
-<rules_action_call>"(" { yy_push_state(arg); return OP; }
-<rules_action_call>[\n] { BEGIN(rules_content); }
-
-
-%%
-
-
-/******************************************************************************
-* *
-* Paramètres : - *
-* *
-* Description : Tente de libérer autant de mémoire que possible... *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-void free_flex_memory(void)
-{
- yy_delete_buffer(YY_CURRENT_BUFFER);
-
-}