/***** $Source: d:\gunther\source\grc/RCS/rccparse.y,v $ $Author: gunther $ $Date: 1995/12/29 23:49:21 $ $Revision: 1.5 $ Changed by: Fred Kiefer (kiefer@isys.de) 1996/6/2 *****/ %{ #include #include "port.h" #include "resnt.h" #include "yystype.h" #include "rcutils.h" #include "rcompile.h" #include "wstring.h" int lines; char currentFile[MAX_PATH]; ResourceTail globalTail = { 0, 0, 0x409, 0, 0 }; /* #define YYDEBUG 1 */ /* #define YYINITDEPTH 50 */ #define MAKESTYLE(style, default) (((default) & ~(style.negative)) | (style.positive)) #define CONTROL_DEFAULT WS_CHILD | WS_VISIBLE #define AUTO3STATE_DEFAULT BS_AUTO3STATE | WS_TABSTOP | CONTROL_DEFAULT #define AUTOCHECKBOX_DEFAULT BS_AUTOCHECKBOX | WS_TABSTOP | CONTROL_DEFAULT #define AUTORADIOBUTTON_DEFAULT BS_AUTORADIOBUTTON | CONTROL_DEFAULT #define CHECKBOX_DEFAULT BS_CHECKBOX | WS_TABSTOP | CONTROL_DEFAULT #define COMBOBOX_DEFAULT WS_TABSTOP | CONTROL_DEFAULT #define CTEXT_DEFAULT SS_CENTER | WS_GROUP | CONTROL_DEFAULT #define DEFPUSHBUTTON_DEFAULT BS_DEFPUSHBUTTON | WS_TABSTOP | CONTROL_DEFAULT #define EDITTEXT_DEFAULT ES_LEFT | WS_BORDER | WS_TABSTOP | CONTROL_DEFAULT #define GROUPBOX_DEFAULT BS_GROUPBOX | CONTROL_DEFAULT #define ICON_DEFAULT SS_ICON | CONTROL_DEFAULT #define LISTBOX_DEFAULT LBS_NOTIFY | WS_BORDER | CONTROL_DEFAULT #define LTEXT_DEFAULT SS_LEFT | WS_GROUP | CONTROL_DEFAULT #define PUSHBUTTON_DEFAULT BS_PUSHBUTTON | WS_TABSTOP | CONTROL_DEFAULT #define RADIOBUTTON_DEFAULT BS_RADIOBUTTON | WS_TABSTOP | CONTROL_DEFAULT #define RTEXT_DEFAULT SS_RIGHT | WS_GROUP | CONTROL_DEFAULT #define SCROLLBAR_DEFAULT SBS_HORZ | CONTROL_DEFAULT #define STATE3_DEFAULT BS_3STATE | WS_TABSTOP | CONTROL_DEFAULT /* forword declarations */ void getFileInfo(char *filename, int line); struct_control *CONTROLWITHTITLE(char *name, int id, int x, int y, int cx, int cy, int type, unsigned long style, unsigned long exstyle); struct_control *CONTROLWITHTYPE(char *name, int id, int x, int y, int cx, int cy, char *type, unsigned long style, unsigned long exstyle); struct_control *CONTROLWITHID(int name, int id, int x, int y, int cx, int cy, int type, unsigned long style, unsigned long exstyle); int known_type(char *type); rcdata_entry *new_rc_entry(void *data, int size); %} %token WHITESPACE NUMBER STRING QUOTEDSTRING ACCELERATORS AUTO3STATE AUTOCHECKBOX %token AUTORADIOBUTTON BEG BITMAP CAPTION CHARACTERISTICS CHECKBOX CLASS COMBOBOX %token CONTROL CTEXT CURSOR DEFPUSHBUTTON DIALOG DIALOGEX EDITTEXT END EXSTYLE FONT %token GROUPBOX ICON LANGUAGE LISTBOX LTEXT MENUITEM MENUEX MENU MESSAGETABLE NOT POPUP %token PUSHBOX PUSHBUTTON RADIOBUTTON RCDATA RTEXT SCROLLBAR STATE3 STRINGTABLE STYLE %token VERSION VERSIONINFO DLGINCLUDE %token MEMFLAG SEPARATOR MENUFLAG ALT SHIFT NOINVERT ASCII VIRTKEY %token FILEVERSION PRODUCTVERSION FILEFLAGS FILEFLAGSMASK FILEOS %token FILETYPE FILESUBTYPE BLOCK VALUE TOOLBAR BUTTON %union { struct_dialog *dialog; struct_control *control; rcdata_entry *rcdata; version_entry *vsdata; struct_flags flags; ResourceTail option; ACCELTABLEENTRY accel_entry; DLGFONT font; VS_FIXEDFILEINFO vsfixed; unsigned long file_version[2]; file_info finfo; node *list; char string[MAX_RES_STRING]; wchar_t ustring[MAX_RES_STRING]; unsigned int value; } %type NUMBER MEMFLAG MENUFLAG %type QUOTEDSTRING STRING %type control %type dialog_options %type