aboutsummaryrefslogtreecommitdiff
path: root/lib/libforms/yacc.y
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libforms/yacc.y')
-rw-r--r--lib/libforms/yacc.y149
1 files changed, 0 insertions, 149 deletions
diff --git a/lib/libforms/yacc.y b/lib/libforms/yacc.y
deleted file mode 100644
index 2bc953e23cee..000000000000
--- a/lib/libforms/yacc.y
+++ /dev/null
@@ -1,149 +0,0 @@
-%{
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ncurses.h>
-#include <forms.h>
-
-extern struct form *form;
-
-struct field *cur_field;
-int id,next, up, down, left, right;
-%}
-
-%start file
-
-%union {
- int ival;
- char *sval;
-}
-
-%token <sval> STRING
-%token <ival> NUMBER
-%token <ival> INPUT
-%token <ival> TEXT
-%token <ival> FORM
-
-%type <sval> String
-
-%%
-
-file : /* Empty */
- | file form
- | file fields
- | error
- ;
-
-form : FORM NUMBER NUMBER NUMBER NUMBER
- {
- form = (struct form *) malloc(sizeof(struct form));
- if (!form)
- return(-1);
- form->x = $2;
- form->y = $3;
- form->height = $4;
- form->width = $5;
- form->fields = 0;
- }
- ;
-
-fields : input
- | text
- ;
-
-input : INPUT NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER String NUMBER NUMBER NUMBER NUMBER String
- {
- if (alloc_field() == -1)
- return(-1);
- cur_field->field_id = $2;
- /*
- * These will hold addresses but store
- * the field id's in them temporarily
- */
- cur_field->next = (struct field *) $3;
- cur_field->up = (struct field *) $4;
- cur_field->down = (struct field *) $5;
- cur_field->left = (struct field *) $6;
- cur_field->right = (struct field *) $7;
- cur_field->type = FORM_FTYPE_INPUT;
- cur_field->entry.input.y_prompt = $8;
- cur_field->entry.input.x_prompt = $9;
- cur_field->entry.input.prompt_width = $10;
- cur_field->entry.input.prompt_attr = FORM_DEFAULT_ATTR;
- cur_field->entry.input.prompt = (char *) malloc($10+1);
- if (!cur_field->entry.input.prompt)
- return(-1);
- strncpy(cur_field->entry.input.prompt, $11, $10);
- cur_field->entry.input.prompt[$10] = 0;
- cur_field->entry.input.y_field = $12;
- cur_field->entry.input.x_field = $13;
- cur_field->entry.input.field_width = $14;
- cur_field->entry.input.max_field_width = $15;
- cur_field->entry.input.field = (char *) malloc(strlen($16));
- cur_field->entry.input.field_attr = FORM_DEFAULT_ATTR;
- if (!cur_field->entry.input.field)
- return(-1);
- strcpy(cur_field->entry.input.field, $16);
- }
- ;
-
-text : TEXT NUMBER NUMBER String
- {
- if (alloc_field() == -1)
- return(-1);
- cur_field->field_id = 0;
- cur_field->type = FORM_FTYPE_TEXT;
- cur_field->entry.text.y = $2;
- cur_field->entry.text.x = $3;
- cur_field->entry.text.attr = FORM_DEFAULT_ATTR;
- cur_field->entry.text.text = (char *) malloc(strlen($4));
- if (!cur_field->entry.text.text)
- return (-1);
- strcpy(cur_field->entry.text.text, $4);
- }
- ;
-
-String : STRING
- {
- char *t, *old, *new;
-
- t = strdup($1);
- free($1);
- /*
- * Deal with any escaped characters,
- * only works for " and \ really.
- */
- for (old=t, new=t; *old; old++, new++) {
- if (*old == '\\')
- old++;
- *new = *old;
- }
- *new = '\0';
- $$ = t;
- }
-
-%%
-void
-yyerror(char *s)
-{
- printf("%s\n", s);
- exit(1);
-}
-
-int
-alloc_field()
-{
- if (!form->fields) {
- form->fields = (struct field *) malloc(sizeof(struct field));
- if (!form->fields)
- return(-1);
- cur_field = form->fields;
- } else {
- cur_field->link = (struct field *) malloc(sizeof(struct field));
- if (!cur_field->link)
- return(-1);
- cur_field = cur_field->link;
- }
-
- return(0);
-}