summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenedikt Spranger <b.spranger@pengutronix.de>2004-10-04 13:17:39 +0000
committerBenedikt Spranger <b.spranger@pengutronix.de>2004-10-04 13:17:39 +0000
commit0f170f3018b87ac027dc8175523d63ce1a753bef (patch)
treec9998fd796b0b20761ce4dce4d9331e193e27ac2
parent5da371227c83b4c2da15d1283ae974d549d9dcf9 (diff)
downloadmemedit-0f170f3018b87ac027dc8175523d63ce1a753bef.tar.gz
memedit-0f170f3018b87ac027dc8175523d63ce1a753bef.tar.xz
BSP: little help added.
-rw-r--r--fpgaedit.l6
-rw-r--r--fpgaedit.y19
2 files changed, 23 insertions, 2 deletions
diff --git a/fpgaedit.l b/fpgaedit.l
index 5006ac3..db3e887 100644
--- a/fpgaedit.l
+++ b/fpgaedit.l
@@ -30,6 +30,12 @@ quit {
return EXIT;
}
+h |
+help {
+ if (debug > 4) printf ("HELP\n");
+ return HELP;
+}
+
m[dm](\.[biw])* {
if (strlen (yytext) == 2) yylval.val = 4;
else switch (*(yytext + 3)) {
diff --git a/fpgaedit.y b/fpgaedit.y
index 0754694..4110502 100644
--- a/fpgaedit.y
+++ b/fpgaedit.y
@@ -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;