Enlightenment CVS committal
Author : rephorm
Project : e17
Module : proto
Dir : e17/proto/edje_cc
Modified Files:
Etcher.h edje.l edje.y etcher_parse.c main.c
Log Message:
Tie the parser and structs together.
===================================================================
RCS file: /cvsroot/enlightenment/e17/proto/edje_cc/Etcher.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- Etcher.h 8 Sep 2004 06:56:23 -0000 1.6
+++ Etcher.h 8 Sep 2004 21:49:18 -0000 1.7
@@ -19,6 +19,7 @@
typedef struct _Etcher_Program Etcher_Program;
typedef struct _Etcher_Part_State Etcher_Part_State;
+typedef enum _Etcher_Parse_Sectoin Etcher_Parse_Section;
enum _Etcher_Image_Type
@@ -116,6 +117,7 @@
Evas_List *parts;
Evas_List *programs;
+ Evas_List *data;
};
struct _Etcher_Part
@@ -134,6 +136,8 @@
{
int x, y;
} step, count;
+ char *confine;
+
} dragable;
Evas_List *states;
@@ -204,6 +208,8 @@
int l, r, t, b;
} border;
+ char *color_class;
+
struct
{
int r, g, b, a;
@@ -243,4 +249,28 @@
};
+enum Etcher_Parse_Section
+{
+BASE,
+COLLECTIONS,
+DATA,
+DESCRIPTION,
+DRAGABLE,
+FILL,
+FONT,
+FONTS,
+GROUP,
+GROUPS,
+IMAGES,
+PART,
+PARTS,
+PROGRAM,
+PROGRAMS,
+REL1,
+REL2,
+SCRIPT,
+TEXT
+};
+
+
#endif
===================================================================
RCS file: /cvsroot/enlightenment/e17/proto/edje_cc/edje.l,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -3 -r1.19 -r1.20
--- edje.l 8 Sep 2004 06:39:02 -0000 1.19
+++ edje.l 8 Sep 2004 21:49:18 -0000 1.20
@@ -20,23 +20,23 @@
#define SCRIPT_START() BEGIN(SC_SCRIPT);
#define SCRIPT_END() BEGIN(INITIAL); \
- if (script) { \
- yylval.string =
strdup(script); \
- free(script); \
- } \
- script = NULL; \
- VAL_RETURN(SCRIPT);
+ if (script) { \
+ yylval.string = strdup(script); \
+ free(script); \
+ } \
+ script = NULL; \
+ VAL_RETURN(SCRIPT);
#define SCRIPT_PIECE() if (script == NULL) { \
- script =
strdup(yytext); \
- } else { \
- char *t = NULL; \
- int len =
strlen(script) + yyleng + 1; \
- t = (char
*)malloc(sizeof(char) * len); \
- snprintf(t, len,
"%s%s", script, yytext); \
- free(script); \
- script = t; \
- }
+ script = strdup(yytext); \
+ } else { \
+ char *t = NULL; \
+ int len = strlen(script) + yyleng + 1; \
+ t = (char *)malloc(sizeof(char) * len); \
+ snprintf(t, len, "%s%s", script, yytext); \
+ free(script); \
+ script = t; \
+ }
#define SCRIPT_NEW_LINE() lnum ++; SCRIPT_PIECE();
===================================================================
RCS file: /cvsroot/enlightenment/e17/proto/edje_cc/edje.y,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -3 -r1.19 -r1.20
--- edje.y 8 Sep 2004 06:56:23 -0000 1.19
+++ edje.y 8 Sep 2004 21:49:18 -0000 1.20
@@ -11,6 +11,8 @@
extern int lnum;
extern int col;
+ int section;
+
%}
%union {
@@ -62,10 +64,10 @@
yyclearin;
}
;
-collections: COLLECTIONS OPEN_BRACE collection_statement CLOSE_BRACE
+collections: COLLECTIONS {section = GROUPS; } OPEN_BRACE collection_statement
CLOSE_BRACE { section = BASE; }
;
-fonts: FONTS OPEN_BRACE font_statement CLOSE_BRACE
+fonts: FONTS { section = FONTS; } OPEN_BRACE font_statement CLOSE_BRACE { section =
BASE; }
;
font_statement: font
@@ -73,11 +75,12 @@
;
font: FONT COLON STRING STRING SEMICOLON {
+ etcher_parse_font($3, $4);
printf("got font '%s' named (%s)\n", $3, $4);
}
;
-images: IMAGES OPEN_BRACE image_statement CLOSE_BRACE
+images: IMAGES { section = IMAGES; } OPEN_BRACE image_statement CLOSE_BRACE {
section = BASE; }
;
image_statement: image
@@ -85,9 +88,11 @@
;
image: IMAGE COLON STRING image_type SEMICOLON {
+ etcher_parse_image($3, $4, 0);
printf("got image '%s' of type %d\n", $3, $4);
}
| IMAGE COLON STRING image_type FLOAT SEMICOLON {
+ etcher_parse_image($3, $4, $5);
printf("got image '%s' of type %d (%f)\n", $3, $4, $5);
}
;
@@ -98,26 +103,39 @@
| USER { $$ = ETCHER_IMAGE_TYPE_EXTERNAL; }
;
-data: DATA OPEN_BRACE data_statement CLOSE_BRACE
+/* don't set a section here yet (since BASE and GROUP have data sects) */
+data: DATA OPEN_BRACE data_statement CLOSE_BRACE
+ | DATA OPEN_BRACE CLOSE_BRACE
;
data_statement: item
| item data_statement
;
-item: ITEM COLON STRING STRING SEMICOLON {
- printf("got item %s :: %s\n", $3, $4);
+item: ITEM COLON STRING STRING SEMICOLON {
+ switch (section)
+ {
+ case BASE:
+ etcher_parse_data($3, $4);
+ break;
+ case GROUP:
+ etcher_parse_group_data($3, $4);
+ break;
+ default:
+ break;
+ }
+ printf("got item %s :: %s\n", $3, $4);
}
;
-programs: PROGRAMS OPEN_BRACE program_statement CLOSE_BRACE
+programs: PROGRAMS { section = PROGRAMS; } OPEN_BRACE program_statement CLOSE_BRACE {
section = BASE; }
;
program_statement: program
| program program_statement
;
-program: PROGRAM OPEN_BRACE program_body CLOSE_BRACE
+program: PROGRAM { etcher_parse_program(); section = PROGRAM; } OPEN_BRACE
program_body CLOSE_BRACE { section = PROGRAMS; }
;
program_body: /* blank */
@@ -137,21 +155,38 @@
;
name: NAME COLON STRING SEMICOLON {
+ switch(section)
+ {
+ case GROUP:
+ etcher_parse_group_name($3);
+ break;
+ case PART:
+ etcher_parse_part_name($3);
+ break;
+ case PROGRAM:
+ etcher_parse_program_name($3);
+ break;
+ default:
+ break;
+ }
printf("name: %s\n", $3);
}
;
program_signal: SIGNAL COLON STRING SEMICOLON {
+ etcher_parse_program_signal($3);
printf("signal: %s\n", $3);
}
;
program_source: SOURCE COLON STRING SEMICOLON {
+ etcher_parse_program_source($3);
printf("source: %s\n", $3);
}
;
program_in: IN COLON FLOAT FLOAT SEMICOLON {
+ etcher_parse_program_in($3, $4);
printf("in %f %f\n", $3, $4);
}
;
@@ -179,6 +214,7 @@
;
program_transition: TRANSITION COLON transition_type FLOAT SEMICOLON {
+ etcher_parse_program_transition($3, $4);
printf("transition %d %f\n", $3, $4);
}
;
@@ -190,11 +226,13 @@
;
program_target: TARGET COLON STRING SEMICOLON {
+ etcher_parse_program_target($3);
printf("targeting %s\n", $3);
}
;
program_after: AFTER COLON STRING SEMICOLON {
+ etcher_parse_program_after($3);
printf("after %s\n", $3);
}
;
@@ -203,7 +241,7 @@
| group collection_statement
;
-group: GROUP OPEN_BRACE group_foo CLOSE_BRACE
+group: GROUP { etcher_parse_group(); section = GROUP; } OPEN_BRACE group_foo
CLOSE_BRACE { section = GROUPS; }
;
group_foo:
@@ -232,23 +270,48 @@
;
min: MIN COLON FLOAT FLOAT SEMICOLON {
+ switch(section)
+ {
+ case GROUP:
+ etcher_parse_group_min($3, $4);
+ break;
+ case STATE:
+ etcher_parse_state_min($3, $4);
+ break;
+ case TEXT:
+ etcher_parse_state_text_min($3, $4);
+ break;
+ default:
+ break;
+ }
printf("min %f %f\n", $3, $4);
}
;
max: MAX COLON FLOAT FLOAT SEMICOLON {
+ switch(section)
+ {
+ case GROUP:
+ etcher_parse_group_max($3, $4);
+ break;
+ case STATE:
+ etcher_parse_state_max($3, $4);
+ break;
+ default:
+ break;
+ }
printf("max %f %f\n", $3, $4);
}
;
-parts: PARTS OPEN_BRACE parts_statement CLOSE_BRACE
+parts: PARTS { section = PARTS; } OPEN_BRACE parts_statement CLOSE_BRACE { section =
BASE; }
;
parts_statement: part
| part parts_statement
;
-part: PART OPEN_BRACE part_foo CLOSE_BRACE
+part: PART { etcher_parse_part(); section = PART; } OPEN_BRACE part_foo CLOSE_BRACE {
section = PARTS; }
;
part_foo:
@@ -270,6 +333,7 @@
;
type: TYPE COLON part_type SEMICOLON {
+ etcher_parse_part_type($3);
printf("type %d\n", $3);
}
;
@@ -281,6 +345,7 @@
;
effect: EFFECT COLON effect_type SEMICOLON {
+ etcher_parse_part_effect($3);
printf("effect %d\n", $3);
}
;
@@ -295,26 +360,31 @@
;
mouse_events: MOUSE_EVENTS COLON FLOAT SEMICOLON {
+ etcher_parse_part_mouse_events($3);
printf("mouse event %f\n", $3);
}
;
repeat_events: REPEAT_EVENTS COLON FLOAT SEMICOLON {
+ etcher_parse_part_repeat_events($3);
printf("repeat events %d\n", $3);
}
;
clip_to: CLIP_TO COLON STRING SEMICOLON {
+ etcher_parse_part_clip_to($3);
printf("clip to (%s)\n", $3);
}
;
color_class: COLOR_CLASS COLON STRING SEMICOLON {
+ etcher_parse_state_color_class($3);
printf("color class %s\n", $3);
}
;
text_class: TEXT_CLASS COLON STRING SEMICOLON {
+ etcher_parse_state_text_text_class($3);
printf("text class %s\n", $3);
}
;
@@ -327,7 +397,7 @@
| description
;
-dragable: DRAGABLE OPEN_BRACE dragable_statement CLOSE_BRACE
+dragable: DRAGABLE { section = DRAGABLE; } OPEN_BRACE dragable_statement CLOSE_BRACE
{ section = PART; }
;
dragable_statement: dragable_body
@@ -340,21 +410,24 @@
;
x: X COLON FLOAT FLOAT FLOAT SEMICOLON {
+ etcher_parse_part_dragable_x($3, $4, $5);
printf("x %f %f %f\n", $3, $4, $5);
}
;
y: Y COLON FLOAT FLOAT FLOAT SEMICOLON {
+ etcher_parse_part_dragable_y($3, $4, $5);
printf("y %f %f %f\n", $3, $4, $5);
}
;
confine: CONFINE COLON STRING SEMICOLON {
+ etcher_parse_part_dragable_confine($3);
printf("confine %s\n", $3);
}
;
-description: DESCRIPTION OPEN_BRACE desc_foo CLOSE_BRACE
+description: DESCRIPTION { etcher_parse_state(); section = STATE; } OPEN_BRACE
desc_foo CLOSE_BRACE { section = PART; }
;
desc_foo:
@@ -377,31 +450,39 @@
;
state: STATE COLON STRING FLOAT SEMICOLON {
+ etcher_parse_state_name($3, $4);
printf("state %s %f\n", $3, $4);
}
;
visible: VISIBLE COLON FLOAT SEMICOLON {
+ etcher_parse_state_visible($3);
printf("visible %f\n", $3);
}
;
align: ALIGN COLON FLOAT FLOAT SEMICOLON {
+ etcher_parse_state_align($3, $4);
+ /* FIXME what about text align? */
printf("align %f %f\n", $3, $4);
}
;
step: STEP COLON FLOAT FLOAT SEMICOLON {
+ etcher_parse_state_step($3, $4);
+ /* FIXME what about drag step? */
printf("step %f %f\n", $3, $4);
}
;
aspect: ASPECT COLON FLOAT FLOAT SEMICOLON {
+ etcher_parse_state_aspect($3, $4);
printf("aspect %f %f\n", $3, $4);
}
;
aspect_preference: ASPECT_PREFERENCE COLON aspect_pref_type SEMICOLON {
+ etcher_parse_state_aspect_preference($3);
printf("aspect_preference %d\n", $3);
}
;
@@ -428,10 +509,10 @@
| text
;
-rel1: REL1 OPEN_BRACE rel_statement CLOSE_BRACE
+rel1: REL1 {section = REL1;} OPEN_BRACE rel_statement CLOSE_BRACE {section = STATE;}
;
-rel2: REL2 OPEN_BRACE rel_statement CLOSE_BRACE
+rel2: REL2 {section = REL2;} OPEN_BRACE rel_statement CLOSE_BRACE {section = STATE;}
;
rel_statement: rel_body
@@ -446,31 +527,100 @@
;
relative: RELATIVE COLON FLOAT FLOAT SEMICOLON {
+ switch(section)
+ {
+ case REL1:
+ etcher_parse_state_rel1_relative($3, $4);
+ break;
+ case REL2:
+ etcher_parse_state_rel2_relative($3, $4);
+ break;
+ case ORIGIN:
+ etcher_parse_state_fill_origin_relative($3, $4);
+ break;
+ case SIZE:
+ etcher_parse_state_fill_size_relative($3, $4);
+ break;
+ default:
+ break;
+ }
printf("relative %f %f\n", $3, $4);
}
;
offset: OFFSET COLON FLOAT FLOAT SEMICOLON {
+ switch(section)
+ {
+ case REL1:
+ etcher_parse_state_rel1_offset($3, $4);
+ break;
+ case REL2:
+ etcher_parse_state_rel2_offset($3, $4);
+ break;
+ case ORIGIN:
+ etcher_parse_state_fill_origin_offset($3, $4);
+ break;
+ case SIZE:
+ etcher_parse_state_fill_size_offset($3, $4);
+ break;
+ default:
+ break;
+ }
printf("offset %f %f\n", $3, $4);
}
;
to: TO COLON STRING SEMICOLON {
+ switch(section)
+ {
+ case REL1:
+ printf("rel1 ");
+ etcher_parse_state_rel1_to($3);
+ break;
+ case REL2:
+ printf("rel2 ");
+ etcher_parse_state_rel2_to($3);
+ break;
+ default:
+ printf("Error: \"to\" not allowed here %d, %d", lnum, col);
+ }
printf("to %s\n", $3);
}
;
to_x: TO_X COLON STRING SEMICOLON {
+ switch(section)
+ {
+ case REL1:
+ etcher_parse_state_rel1_to_x($3);
+ break;
+ case REL2:
+ etcher_parse_state_rel2_to_x($3);
+ break;
+ default:
+ break;
+ }
printf("to_x %s\n", $3);
}
;
to_y: TO_Y COLON STRING SEMICOLON {
+ switch(section)
+ {
+ case REL1:
+ etcher_parse_state_rel1_to_y($3);
+ break;
+ case REL2:
+ etcher_parse_state_rel2_to_y($3);
+ break;
+ default:
+ break;
+ }
printf("to_y %s\n", $3);
}
;
-image: IMAGE OPEN_BRACE image_statement CLOSE_BRACE
+image: IMAGE { section = IMAGE; } OPEN_BRACE image_statement CLOSE_BRACE { section =
STATE; }
;
image_statement: image_body
@@ -482,21 +632,24 @@
;
normal: NORMAL COLON STRING SEMICOLON {
+ etcher_parse_state_image_normal($3);
printf("normal %s\n", $3);
}
;
tween: TWEEN COLON STRING SEMICOLON {
+ etcher_parse_state_image_tween($3);
printf("tween %s\n", $3);
}
;
border: BORDER COLON FLOAT FLOAT FLOAT FLOAT SEMICOLON {
+ etcher_parse_state_border($3, $4, $5, $6);
printf("border %f %f %f %f\n", $3, $4, $5, $6);
}
;
-fill: FILL OPEN_BRACE fill_statement CLOSE_BRACE
+fill: FILL OPEN_BRACE { section = FILL; } fill_statement CLOSE_BRACE { section =
STATE; }
;
fill_statement: fill_body
@@ -509,11 +662,12 @@
;
smooth: SMOOTH COLON FLOAT SEMICOLON {
+ etcher_parse_state_fill_smooth($3);
printf("smooth %f\n", $3);
}
;
-origin: ORIGIN OPEN_BRACE origin_statement CLOSE_BRACE
+origin: ORIGIN { section = ORIGIN; } OPEN_BRACE origin_statement CLOSE_BRACE {
section = FILL; }
;
origin_statement: origin_body
@@ -524,30 +678,34 @@
| offset
;
-size: SIZE OPEN_BRACE origin_statement CLOSE_BRACE
+size: SIZE { section = SIZE; } OPEN_BRACE origin_statement CLOSE_BRACE { section =
FILL; }
;
color_class: COLOR_CLASS COLON STRING SEMICOLON {
+ etcher_parse_state_color_class($3);
printf("colour class %s\n", $3);
}
;
color: COLOR COLON FLOAT FLOAT FLOAT FLOAT SEMICOLON {
+ etcher_parse_state_color($3, $4, $5, $6);
printf("color %f %f %f %f\n", $3, $4, $5, $6);
}
;
color2: COLOR2 COLON FLOAT FLOAT FLOAT FLOAT SEMICOLON {
+ etcher_parse_state_color2($3, $4, $5, $6);
printf("color2 %f %f %f %f\n", $3, $4, $5, $6);
}
;
color3: COLOR3 COLON FLOAT FLOAT FLOAT FLOAT SEMICOLON {
+ etcher_parse_state_color3($3, $4, $5, $6);
printf("color3 %f %f %f %f\n", $3, $4, $5, $6);
}
;
-text: TEXT OPEN_BRACE text_statement CLOSE_BRACE
+text: TEXT { section = TEXT; } OPEN_BRACE text_statement CLOSE_BRACE { section =
STATE; }
;
text_statement: text_body
@@ -564,26 +722,31 @@
;
text_entry: TEXT COLON STRING SEMICOLON {
+ etcher_parse_state_text_text($3);
printf("text (%s)\n", $3);
}
;
text_class: TEXT_CLASS COLON STRING SEMICOLON {
+ etcher_parse_state_text_text_class($3);
printf("text_class %s\n", $3);
}
;
font_entry: FONT COLON STRING SEMICOLON {
+ etcher_parse_state_text_font($3);
printf("font %s\n", $3);
}
;
size_entry: SIZE COLON FLOAT SEMICOLON {
+ etcher_parse_state_text_size($3);
printf("size %f\n", $3);
}
;
fit: FIT COLON FLOAT FLOAT SEMICOLON {
+ etcher_parse_state_text_fit($3, $4);
printf("fit %f %f\n", $3, $4);
}
;
===================================================================
RCS file: /cvsroot/enlightenment/e17/proto/edje_cc/etcher_parse.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- etcher_parse.c 8 Sep 2004 06:56:23 -0000 1.1
+++ etcher_parse.c 8 Sep 2004 21:49:18 -0000 1.2
@@ -1,6 +1,6 @@
#include "Etcher.h"
-static Etcher_File *etcher_file = 0;
+Etcher_File *etcher_file = 0;
void
etcher_parse_init()
@@ -60,7 +60,24 @@
}
void
-etcher_parse_group_name(void *name)
+etcher_parse_group_data(char *key, char *value)
+{
+ Etcher_Group *group;
+ Etcher_Data *data;
+
+ data = (Etcher_Data *)calloc(1, sizeof(Etcher_Data));
+ data->key = (char *)strdup(key);
+ data->value = (char *)strdup(value);
+
+ etcher_file->data = evas_list_append(etcher_file->data, data);
+
+ group = evas_list_data(evas_list_last(etcher_file->groups));
+
+ group->data = evas_list_append(group->data, data);;
+}
+
+void
+etcher_parse_group_name(char *name)
{
Etcher_Group *group;
@@ -106,7 +123,7 @@
}
void
-etcher_parse_part_name(void *name)
+etcher_parse_part_name(char *name)
{
Etcher_Group *group;
Etcher_Part *part;
@@ -208,6 +225,19 @@
}
void
+etcher_parse_part_dragable_confine(char *confine)
+{
+ Etcher_Group *group;
+ Etcher_Part *part;
+
+ group = evas_list_data(evas_list_last(etcher_file->groups));
+ part = evas_list_data(evas_list_last(group->parts));
+
+ if (part->dragable.confine) free (part->dragable.confine);
+ part->dragable.confine = (char *)strdup(confine);
+}
+
+void
etcher_parse_state()
{
Etcher_Group *group;
@@ -313,7 +343,7 @@
}
void
-etcher_parse_state_aspect(double w, double h, Etcher_Aspect_Preference prefer)
+etcher_parse_state_aspect(double w, double h)
{
Etcher_Group *group;
Etcher_Part *part;
@@ -325,6 +355,19 @@
state->aspect.w = w;
state->aspect.h = h;
+}
+
+void
+etcher_parse_state_aspect_preference(Etcher_Aspect_Preference prefer)
+{
+ Etcher_Group *group;
+ Etcher_Part *part;
+ Etcher_Part_State *state;
+
+ group = evas_list_data(evas_list_last(etcher_file->groups));
+ part = evas_list_data(evas_list_last(group->parts));
+ state = evas_list_data(evas_list_last(part->states));
+
state->aspect.prefer = prefer;
}
@@ -499,8 +542,8 @@
for (l = etcher_file->images; l; l = l->next)
{
- Etcher_Image *im;
- if (!strcmp(im->name, name))
+ Etcher_Image *im = l->data;
+ if (im && !strcmp(im->name, name))
{
state->image.normal = im;
return;
@@ -523,8 +566,8 @@
for (l = etcher_file->images; l; l = l->next)
{
- Etcher_Image *im;
- if (!strcmp(im->name, name))
+ Etcher_Image *im = l->data;
+ if (im && !strcmp(im->name, name))
{
state->image.tween = evas_list_append(state->image.tween, im);
return;
@@ -551,6 +594,21 @@
}
void
+etcher_parse_state_color_class(char *color_class)
+{
+ Etcher_Group *group;
+ Etcher_Part *part;
+ Etcher_Part_State *state;
+
+ group = evas_list_data(evas_list_last(etcher_file->groups));
+ part = evas_list_data(evas_list_last(group->parts));
+ state = evas_list_data(evas_list_last(part->states));
+
+ if (state->color_class) free(state->color_class);
+ state->color_class = (char *)strdup(color_class);
+}
+
+void
etcher_parse_state_color(int r, int g, int b, int a)
{
Etcher_Group *group;
@@ -618,7 +676,7 @@
}
void
-etcher_parse_state_fill_pos_rel(double x, double y)
+etcher_parse_state_fill_origin_relative(double x, double y)
{
Etcher_Group *group;
Etcher_Part *part;
@@ -633,7 +691,7 @@
}
void
-etcher_parse_state_fill_rel(double x, double y)
+etcher_parse_state_fill_size_relative(double x, double y)
{
Etcher_Group *group;
Etcher_Part *part;
@@ -648,7 +706,7 @@
}
void
-etcher_parse_state_fill_pos_abs(int x, int y)
+etcher_parse_state_fill_origin_offset(int x, int y)
{
Etcher_Group *group;
Etcher_Part *part;
@@ -663,7 +721,7 @@
}
void
-etcher_parse_state_fill_abs(int x, int y)
+etcher_parse_state_fill_size_offset(int x, int y)
{
Etcher_Group *group;
Etcher_Part *part;
@@ -874,6 +932,7 @@
program->in2 = in2;
}
+/* handle different action types */
void
etcher_parse_program_action(Etcher_Action action)
{
===================================================================
RCS file: /cvsroot/enlightenment/e17/proto/edje_cc/main.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- main.c 7 Sep 2004 23:57:58 -0000 1.3
+++ main.c 8 Sep 2004 21:49:18 -0000 1.4
@@ -1,5 +1,6 @@
#include <stdio.h>
#include <getopt.h>
+#include "Etcher.h"
int main(int argc, char ** argv)
{
@@ -7,6 +8,7 @@
char *file = NULL;
extern FILE *yyin;
extern int yydebug;
+ extern Etcher_File *etcher_file;
static struct option long_opts[] = {
{"yydebug", no_argument, NULL, 'y'},
@@ -34,9 +36,24 @@
yyin = fopen(file, "r");
free(file);
+ etcher_parse_init();
+
yyparse();
fclose(yyin);
+ /* FIXME: make this a complete test suite */
+ {
+ Evas_List *l;
+ l = etcher_file->data;
+ while (l)
+ {
+ Etcher_Data *d = l->data;
+ printf("-------------------------------------\n");
+ printf("Done parsing, print out data keys:\n");
+ printf("key: %s, value: %s\n", d->key, d->value);
+ l = l->next;
+ }
+ }
return 0;
}
-------------------------------------------------------
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=5047&alloc_id=10808&op=click
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs