diff options
Diffstat (limited to 'fpgaedit.y')
-rw-r--r-- | fpgaedit.y | 19 |
1 files changed, 17 insertions, 2 deletions
@@ -23,6 +23,8 @@ variable *vlist; void set_variable (char *param, int val); int get_variable (char *param); void hex_output (int offset, int len, int count); +void print_help (void); + extern void yyerror (const char *s); extern int yylex (void); %} @@ -49,8 +51,10 @@ char *tptr; %left <val> MD %left <val> MM %left <val> EQ -%left <val> EXIT -%left <val> CR +%token <val> EXIT +%token <val> HELP +%token <val> CR + %type <val> num @@ -64,6 +68,7 @@ line: CR | open CR | close CR | EXIT CR { exit(EXIT_SUCCESS); } + | HELP CR { print_help(); } | NAME CR { printf ("%s = %d\n", $1, get_variable($1)); free($1); } | mem CR | NAME EQ num CR { set_variable ($1, $3); free($1); } @@ -140,6 +145,16 @@ num: NUM ; %% +void print_help (void) { + printf ("help:\n"); + printf ("open <file>\n\topen file <file>\n"); + printf ("close\n\tclose file\n"); + printf ("md [<start> [<end>]]\n\tdisplay from current position or <start> to <end>\n"); + printf ("mm <offset> <val1> .. <valN>\n\tmodify from value <offset>\n"); + printf ("<var> = <expr>\n\tset variable <var> to <expr>\n"); + printf ("<var>\n\tprint variable <var>\n"); +} + void set_variable (char *param, int val) { variable *l, *tmp; |