123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404 |
- /*
- * @OSF_COPYRIGHT@
- * COPYRIGHT NOTICE
- * Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- * ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- * the full copyright text.
- */
- /*
- * HISTORY
- */
- /* "$TOG: Uil.y /main/11 1998/01/23 15:05:38 mgreess $" */
- /*
- * (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
- /*
- **++
- ** FACILITY:
- **
- ** DECwindows Toolkit User Interface Language Compiler (UIL)
- **
- ** ABSTRACT:
- **
- ** YACC Grammar for UIL
- **--
- **/
- %{
- /* Begin user declarations section */
- #include "UilDefI.h"
- #include "UilCompGl.h"
- #define YYSTYPE yystype
- #define YYDEBUG 1
- /* Declare and initialize stack entry for epsilon productions. */
- YYSTYPE gz_yynullval = {NULL,0,0,0,0};
- /* Declare token to aid in saving source context */
- YYSTYPE prev_yylval;
- /* End user declarations section */
- %}
- /*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- * token name token value token class *
- * ---------- ----------- ----------- *
- *----------------------------------------------------------------------------*
- */
- /*
- ** terminals of the language
- **
- ** NOTE: the tags which appear in comments at the end of each token
- ** definition name the token class for the token. These name the
- ** the .dat file processed by WML while constructing token tables.
- ** Thus the output of WML and these tags must match, e.g. for
- ** the token tag 'special' the file 'special.dat' must exist.
- */
- /* end of file indicator */
- %token UILEOF 0 /* unused */
- /* names */
- %token NAME 1 /* identifier */
- %token FONT_NAME 2 /* font */
- %token COLOR_NAME 3 /* color */
- %token ARGUMENT_NAME 4 /* argument */
- %token REASON_NAME 5 /* reason */
- %token CHARSET_NAME 6 /* charset */
- %token ENUMVAL_NAME 7 /* enumval */
- %token CLASS_NAME 8 /* class */
- %token CHILD_NAME 96 /* child */
- /* Literals */
- %token UNS_FLOAT_LITERAL 9 /* literal */
- %token COMP_STRING 10 /* literal */
- %token CHAR_8_LITERAL 11 /* literal */
- %token UNS_INT_LITERAL 12 /* literal */
- /* Special characters. Treat these as tokens rather than literals, so
- * that we can assign token numbers to them rather than have YACC use
- * the ASCII value as the token number.
- */
- %token LEFT_PAREN 13 /* special */
- %token RIGHT_PAREN 14 /* special */
- %token COLON 15 /* special */
- %token SEMICOLON 16 /* special */
- %token LEFT_BRACE 17 /* special */
- %token RIGHT_BRACE 18 /* special */
- %token COMMA 19 /* special */
- %token EQUAL_SIGN 20 /* special */
- %token NOT 21 /* special */
- %token PLUS 22 /* special */
- %token MINUS 23 /* special */
- %token AND 24 /* special */
- %token OR 25 /* special */
- %token XOR 26 /* special */
- %token MULTIPLY 27 /* special */
- %token DIVIDE 28 /* special */
- %token LEFT_SHIFT 29 /* special */
- %token RIGHT_SHIFT 30 /* special */
- /* Reserved words */
- %token LIST 31 /* reserved */
- %token IDENTIFIER 32 /* reserved */
- %token END 33 /* reserved */
- %token MODULE 34 /* reserved */
- %token UILTRUE 35 /* reserved */
- %token UILFALSE 36 /* reserved */
- %token INCLUDE 37 /* reserved */
- %token MACRO 38 /* reserved */
- %token ON 39 /* reserved */
- %token OFF 40 /* reserved */
- %token VALUE 41 /* reserved */
- %token ARGUMENTS 42 /* reserved */
- %token CALLBACKS 43 /* reserved */
- %token PROCEDURES 44 /* reserved */
- %token CONTROLS 45 /* reserved */
- %token PROCEDURE 46 /* reserved */
- %token OBJECT 47 /* reserved */
- /* Declaratives */
- %token OBJECTS 48 /* keyword */
- %token WIDGET 49 /* reserved */
- %token GADGET 50 /* reserved */
- %token FONT 51 /* keyword */
- %token ARGUMENT 52 /* keyword */
- %token REASON 53 /* keyword */
- %token PIXMAP 54 /* keyword */
- %token COLOR 55 /* keyword */
- %token NAMES 56 /* keyword */
- %token CHARACTER_SET 57 /* keyword */
- %token CASE_SENSITIVE 58 /* keyword */
- %token CASE_INSENSITIVE 59 /* keyword */
- %token VERSION 60 /* keyword */
- %token MANAGED 61 /* keyword */
- %token UNMANAGED 62 /* keyword */
- %token PRIVATE 63 /* reserved */
- %token IMPORTED 64 /* keyword */
- %token EXPORTED 65 /* reserved */
- %token UILFILE 66 /* keyword */
- %token STRING_TABLE 67 /* keyword */
- %token TRANSLATION_TABLE 68 /* keyword */
- %token COMPOUND_STRING 69 /* keyword */
- %token FONT_TABLE 70 /* keyword */
- %token ANY 71 /* keyword */
- %token STRING 72 /* keyword */
- %token BOOLEAN 73 /* keyword */
- %token ICON 74 /* keyword */
- %token RIGHT_TO_LEFT 75 /* keyword */
- %token BACKGROUND 76 /* keyword */
- %token FOREGROUND 77 /* keyword */
- %token COLOR_TABLE 78 /* keyword */
- %token FLOAT 79 /* keyword */
- %token INTEGER 80 /* keyword */
- %token CLASS_REC_NAME 81 /* keyword */
- %token ASCIZ_TABLE 82 /* keyword */
- %token INTEGER_TABLE 83 /* keyword */
- %token ASCIZ_STRING_TABLE 84 /* keyword */
- %token COMPOUND_STRING_TABLE 85 /* keyword */
- %token XBITMAPFILE 86 /* keyword */
- %token SEPARATE 87 /* keyword */
- %token SIXTEEN_BIT 88 /* keyword */
- %token POUND 89 /* special */
- %token KEYSYM 90 /* keyword */
- %token SINGLE_FLOAT 91 /* keyword */
- %token RGB 92 /* keyword */
- %token WIDE_CHARACTER 93 /* keyword */
- %token LOC_STRING 94 /* literal */ /* New for 1.2 */
- %token FONTSET 95 /* keyword */
- %token COMPOUND_STRING_COMPONENT 97 /* keyword */
- %token PIX 115
- %token PIXEL 103
- %token PIXELS 104
- %token IN 98
- %token INCH 105
- %token INCHES 106
- %token CM 99
- %token CENTIMETER 107
- %token CENTIMETERS 108
- %token MM 100
- %token MILLIMETER 109
- %token MILLIMETERS 110
- %token PT 101
- %token POINT 111
- %token POINTS 112
- %token FU 102
- %token FONT_UNIT 113
- %token FONT_UNITS 114
- %start module_block
- %%
- /*
- ** productions of the grammar
- */
- /* module structure */
- module_block
- : module_header
- { sar_save_module_source (); }
- module_declaration_list END MODULE SEMICOLON
- ;
- module_header
- : /* empty */ { sar_create_root ( &$$ ); }
- MODULE id { sar_create_module( &$$, &$3, &$2 ); }
- opt_module_clauses
- ;
- opt_module_clauses
- : /* empty */
- | module_clauses
- ;
- module_clauses
- : module_clause
- | module_clauses module_clause
- ;
-
- module_clause
- : VERSION EQUAL_SIGN character_8_value { sar_process_module_version( &$3 , &$1 ); }
- | NAMES EQUAL_SIGN sensitivity_value { sar_process_module_sensitivity( &$3 , &$1 ); }
- | CHARACTER_SET EQUAL_SIGN valid_charset { sar_process_module_charset( &$3 , &$1 ); }
- | OBJECTS { sar_make_def_obj (&$1); } EQUAL_SIGN variant_spec
- ;
- sensitivity_value
- : CASE_SENSITIVE
- | CASE_INSENSITIVE
- ;
- variant_spec
- : LEFT_BRACE RIGHT_BRACE
- | LEFT_BRACE variant_list RIGHT_BRACE
- | error { lex_issue_error (RIGHT_BRACE); } RIGHT_BRACE
- ;
- variant_list
- : variant_clause SEMICOLON
- | variant_list variant_clause SEMICOLON
- | error { lex_issue_error (SEMICOLON); } SEMICOLON
- ;
- variant_clause
- : CLASS_NAME { sar_make_def_obj (&$1); }
- EQUAL_SIGN variant { sar_process_module_variant (&$1, &$4); $$ = gz_yynullval; }
- ;
- variant
- : WIDGET { $$ = gz_yynullval; $$.b_type = sym_k_widget_entry; }
- | GADGET { $$ = gz_yynullval; $$.b_type = sym_k_gadget_entry; }
- ;
- module_declaration_list
- : /* empty */
- | module_declaration_list module_declaration
- ;
- module_declaration
- : value_declaration
- | identifier_declaration
- | procedure_declaration
- | object_declaration
- | list_declaration
- | include_directive
- ;
- /* VALUE declaration */
- value_declaration
- : VALUE { $$ = $1; sar_save_section_source (&$1, sym_k_value_section); } value_declaration_list
- ;
- value_declaration_list
- : value_decl
- | value_declaration_list value_decl
- | error { lex_issue_error (SEMICOLON); } SEMICOLON
- ;
- value_decl
- : id COLON value_definition SEMICOLON { sar_bind_value_name( &$1, &$3, &$4 ); }
- ;
- value_definition
- : EXPORTED private_value { $$ = $2; $$.b_flags |= sym_m_exported; $$.b_flags &= ~sym_m_private; }
- | PRIVATE private_value_plus { $$ = $2; $$.b_flags |= sym_m_private; $$.b_flags &= ~sym_m_exported; }
- | private_value_plus { $$ = $1; $$.b_flags |= sym_m_private; $$.b_flags &= ~sym_m_exported; }
- | IMPORTED value_type { sar_import_value_entry( &$$, &$2 ); }
- ;
- value_type
- : INTEGER { $$ = $1; $$.b_type = sym_k_integer_value; }
- | STRING { $$ = $1; $$.b_type = sym_k_char_8_value; }
- | PIXMAP { $$ = $1; $$.b_type = sym_k_pixmap_value; }
- | FLOAT { $$ = $1; $$.b_type = sym_k_float_value; }
- | BOOLEAN { $$ = $1; $$.b_type = sym_k_bool_value; }
- | FONT { $$ = $1; $$.b_type = sym_k_font_value; }
- | REASON { $$ = $1; $$.b_type = sym_k_reason_value; }
- | ARGUMENT { $$ = $1; $$.b_type = sym_k_argument_value; }
- | COLOR { $$ = $1; $$.b_type = sym_k_color_value; }
- | string_table_type { $$ = $1; $$.b_type = sym_k_string_table_value; }
- | asciz_table_type { $$ = $1; $$.b_type = sym_k_asciz_table_value; }
- | INTEGER_TABLE { $$ = $1; $$.b_type = sym_k_integer_table_value; }
- | TRANSLATION_TABLE { $$ = $1; $$.b_type = sym_k_trans_table_value; }
- | FONT_TABLE { $$ = $1; $$.b_type = sym_k_font_table_value; }
- | ICON { $$ = $1; $$.b_type = sym_k_icon_value; }
- | COMPOUND_STRING { $$ = $1; $$.b_type = sym_k_compound_string_value; }
- | COMPOUND_STRING_COMPONENT { $$ = $1; $$.b_type = sym_k_compound_string_value; }
- | CLASS_REC_NAME { $$ = $1; $$.b_type = sym_k_class_rec_name_value; }
- | XBITMAPFILE { $$ = $1; $$.b_type = sym_k_xbitmapfile_value; }
- | KEYSYM { $$ = $1; $$.b_type = sym_k_keysym_value; }
- | SINGLE_FLOAT { $$ = $1; $$.b_type = sym_k_single_float_value; }
- | RGB { $$ = $1; $$.b_type = sym_k_rgb_value; }
- | WIDE_CHARACTER { $$ = $1; $$.b_type = sym_k_wchar_string_value; }
- | FONTSET { $$ = $1; $$.b_type = sym_k_fontset_value; }
- | WIDGET { $$ = $1; $$.b_type = sym_k_widget_ref_value; }
- ;
- /* Seperately defined for fixing CR 5888 */
- arg_value_type
- : INTEGER { $$ = $1; $$.b_type = sym_k_integer_value; }
- | STRING { $$ = $1; $$.b_type = sym_k_char_8_value; }
- | PIXMAP { $$ = $1; $$.b_type = sym_k_pixmap_value; }
- | FLOAT { $$ = $1; $$.b_type = sym_k_float_value; }
- | BOOLEAN { $$ = $1; $$.b_type = sym_k_bool_value; }
- | FONT { $$ = $1; $$.b_type = sym_k_font_value; }
- | REASON { $$ = $1; $$.b_type = sym_k_reason_value; }
- | COLOR { $$ = $1; $$.b_type = sym_k_color_value; }
- | string_table_type { $$ = $1; $$.b_type = sym_k_string_table_value; }
- | asciz_table_type { $$ = $1; $$.b_type = sym_k_asciz_table_value; }
- | INTEGER_TABLE { $$ = $1; $$.b_type = sym_k_integer_table_value; }
- | TRANSLATION_TABLE { $$ = $1; $$.b_type = sym_k_trans_table_value; }
- | FONT_TABLE { $$ = $1; $$.b_type = sym_k_font_table_value; }
- | ICON { $$ = $1; $$.b_type = sym_k_icon_value; }
- | COMPOUND_STRING { $$ = $1; $$.b_type = sym_k_compound_string_value; }
- | KEYSYM { $$ = $1; $$.b_type = sym_k_keysym_value; }
- | SINGLE_FLOAT { $$ = $1; $$.b_type = sym_k_single_float_value; }
- | WIDE_CHARACTER { $$ = $1; $$.b_type = sym_k_wchar_string_value; }
- | FONTSET { $$ = $1; $$.b_type = sym_k_fontset_value; }
- | WIDGET { $$ = $1; $$.b_type = sym_k_widget_ref_value; }
- /* End for fixing CR 5888 */
- string_table_type
- : STRING_TABLE
- | COMPOUND_STRING_TABLE
- ;
- asciz_table_type
- : ASCIZ_TABLE
- | ASCIZ_STRING_TABLE
- ;
- /* PROCEDURE declaration */
- procedure_declaration
- : PROCEDURE { $$ = $1; sar_save_section_source (&$1, sym_k_procedure_section); } procedure_declaration_list
- ;
- procedure_declaration_list
- : procedure_decl
- | procedure_declaration_list procedure_decl
- | error { lex_issue_error (SEMICOLON); } SEMICOLON
- ;
- procedure_decl
- : id opt_formal_parameters opt_class SEMICOLON { sar_create_procedure( &$1, &$2, &$3, &$4 );}
- ;
- opt_formal_parameters
- : /* empty */ { $$ = gz_yynullval; }
- | LEFT_PAREN formal_parameter_type RIGHT_PAREN { $$ = $2; }
- ;
- formal_parameter_type
- : /* empty */ { $$ = gz_yynullval; $$.b_type = sym_k_no_value; }
- | value_type
- | ANY { $$ = $1; $$.b_type =
- sym_k_any_value; }
- | CLASS_NAME
- { YYSTYPE temp[2];
- temp[0] = gz_yynullval;
- sar_create_object(&temp[0], sym_k_widget_entry);
- temp[1] = $1; sar_set_object_class(&temp[1]);
- sar_verify_object(&temp[1]);
- $$ = temp[0];
- }
- ;
- opt_class
- : /* empty */ { $$.b_flags = sym_m_private; }
- /*
- | EXPORTED { $$.b_flags = sym_m_exported; }
- | PRIVATE { $$.b_flags = sym_m_private; }
- | IMPORTED { $$.b_flags = sym_m_imported; }
- */
- ;
- /* IDENTIFIER declaration */
- identifier_declaration
- : IDENTIFIER { $$ = $1; sar_save_section_source (&$1, sym_k_identifier_section); } identifier_declaration_list
- ;
- identifier_declaration_list
- : identifier_decl
- | identifier_declaration_list identifier_decl
- | error { lex_issue_error (SEMICOLON); } SEMICOLON
- ;
- identifier_decl
- : id SEMICOLON { sar_create_identifier ( &$1, &$2 ); }
- ;
- /* Directives. */
- /* Include Directive */
- include_directive
- : INCLUDE UILFILE character_8_value SEMICOLON { sar_include_file (&$3, &$1, &$4); }
- | error { lex_issue_error (SEMICOLON); } SEMICOLON
- ;
- /* OBJECT declaration */
- object_declaration
- : OBJECT { $$ = $1; sar_save_section_source (&$1, sym_k_object_section); } object_decl_list
- ;
- object_decl_list
- : object_decl SEMICOLON { $$ = $1; sar_save_src_semicolon_pos (&$2 ); }
- | object_decl_list object_decl SEMICOLON { $$ = $1; sar_save_src_semicolon_pos (&$3 ); }
- | error { lex_issue_error (SEMICOLON); } SEMICOLON
- ;
- object_decl
- : id
- { sar_create_object (&$1, sym_k_widget_entry);
- sar_link_section (&$1); $$ = gz_yynullval;}
- COLON object_definition
- { $$ = gz_yynullval; }
- ;
- object_definition
- : EXPORTED
- { sar_set_object_flags (&$1, sym_m_exported); }
- object_specification
- | PRIVATE
- { sar_set_object_flags (&$1, sym_m_private); }
- object_specification
- | epsilon_production
- { sar_set_object_flags (&$1, sym_m_exported); }
- object_specification
- | IMPORTED
- { sar_set_object_flags (&$1, sym_m_imported); }
- CLASS_NAME
- { sar_set_object_class (&$3); }
- /*
- * Fix for CR 5440 - Call opt_create_proc_ref to check for creation procedures
- * for imported user_defined widgets.
- */
- opt_create_proc_ref
- /*
- * End fix for CR 5440
- */
- epsilon_production
- { sar_verify_object (&$1); }
- ;
- control_object_definition
- : EXPORTED
- { sar_set_object_flags (&$1, sym_m_exported); }
- object_specification
- | PRIVATE
- { sar_set_object_flags (&$1, sym_m_private); }
- object_specification
- | MANAGED
- { sar_set_object_flags (& $1, (sym_m_managed | sym_m_exported)); }
- object_specification
- | UNMANAGED
- { sar_unset_object_flags (& $1, sym_m_managed), sar_set_object_flags (& $1, sym_m_exported); }
- object_specification
- | epsilon_production
- { sar_set_object_flags (&$1, sym_m_exported); }
- object_specification
- | IMPORTED
- { sar_set_object_flags (&$1, sym_m_imported); }
- CLASS_NAME
- { sar_set_object_class (&$3); }
- epsilon_production
- { sar_verify_object (&$1); }
- ;
- object_specification
- : CLASS_NAME
- { sar_set_object_class (&$1); }
- opt_create_proc_ref
- opt_variant
- object_spec
- { sar_verify_object (&$1); }
- ;
- opt_variant
- : epsilon_production
- { sar_set_object_variant (&$1); }
- | variant
- { sar_set_object_variant (&$1); }
- ;
- control_object_specification
- : CLASS_NAME
- { sar_set_object_class (&$1); $$ = gz_yynullval;}
- opt_create_proc_ref
- opt_variant
- control_object_spec
- { sar_verify_object (&$1); }
- ;
- opt_create_proc_ref
- : epsilon_production
- | PROCEDURE id_ref opt_parens
- { sar_process_proc_ref (&$2, &gz_yynullval, sym_k_object_proc);
- sar_save_user_proc_ref_src ( &$1, &$2, &$3 ); }
- ;
- opt_parens
- : epsilon_production
- | LEFT_PAREN RIGHT_PAREN { $$ = $2; }
- ;
- /* object specification. */
- object_spec
- : id_ref
- { sar_object_reference (&$1); }
- | LEFT_BRACE RIGHT_BRACE
- | LEFT_BRACE object_feature_list RIGHT_BRACE
- | error { lex_issue_error (RIGHT_BRACE); } RIGHT_BRACE
- ;
- control_object_spec
- : id_ref
- { sar_object_reference (&$1); }
- | LEFT_BRACE RIGHT_BRACE
- epsilon_production
- { sar_set_object_flags (&$1, sym_m_exported); }
- | LEFT_BRACE object_feature_list RIGHT_BRACE
- epsilon_production
- { sar_set_object_flags (&$1, sym_m_exported); }
- | error { lex_issue_error (RIGHT_BRACE); } RIGHT_BRACE
- ;
- child_object_spec
- : LEFT_BRACE RIGHT_BRACE
- epsilon_production
- { sar_set_object_flags (&$1, sym_m_private); }
- | LEFT_BRACE object_feature_list RIGHT_BRACE
- epsilon_production
- { sar_set_object_flags (&$1, sym_m_private); }
- | error { lex_issue_error (RIGHT_BRACE); } RIGHT_BRACE
- ;
- object_feature_list
- : object_feature
- | object_feature_list object_feature
- ;
- object_feature
- : argument_list_def SEMICOLON
- { sar_save_list_end ( &$2); sar_save_feature (&$1); $$ = gz_yynullval; }
- | callback_list_def SEMICOLON
- { sar_save_list_end ( &$2); sar_save_feature (&$1); $$ = gz_yynullval; }
- | control_list_def SEMICOLON
- { sar_save_list_end ( &$2); sar_save_feature (&$1);
- sar_update_parent_list (&$1); $$ = gz_yynullval; }
- | error { lex_issue_error (SEMICOLON); } SEMICOLON
- ;
- epsilon_production
- : /* empty */
- { $$ = gz_yynullval; }
- ;
- /* LIST declaration */
- list_declaration
- : LIST { $$ = $1; sar_save_section_source (&$1, sym_k_list_section); }
- list_decl_list
- ;
- list_decl_list
- : list_decl SEMICOLON { $$ = $1; sar_save_src_semicolon_pos (&$2 ); }
- | list_decl_list list_decl SEMICOLON { $$ = $1; sar_save_src_semicolon_pos (&$3 ); }
- | error { lex_issue_error (SEMICOLON); } SEMICOLON
- ;
- list_decl
- : id
- { sar_create_object (&$1, sym_k_list_entry);
- sar_link_section (&$1); $$ = gz_yynullval;}
- COLON list_specification
- { $$ = gz_yynullval; }
- ;
- list_specification
- : control_list_specification
- | argument_list_specification
- | callback_list_specification
- | procedure_list_specification
- ;
- control_list_specification
- : control_list_type
- { $$ = gz_yynullval; sar_set_list_type (&$1); }
- control_list_spec
- { sar_verify_object (&$1); }
- ;
- argument_list_specification
- : argument_list_type
- { $$ = gz_yynullval; sar_set_list_type (&$1); }
- argument_list_spec
- { sar_verify_object (&$1); }
- ;
- callback_list_specification
- : callback_list_type
- { $$ = gz_yynullval; sar_set_list_type (&$1); }
- callback_list_spec
- { sar_verify_object (&$1); }
- ;
- procedure_list_specification
- : procedure_list_type
- { $$ = gz_yynullval; sar_set_list_type (&$1); }
- procedure_list_spec
- { sar_verify_object (&$1); }
- ;
- argument_list_type
- : ARGUMENTS
- { $$ = gz_yynullval; $$.b_type = sym_k_argument_list; }
- ;
- callback_list_type
- : CALLBACKS
- { $$ = gz_yynullval; $$.b_type = sym_k_callback_list; }
- ;
- procedure_list_type
- : PROCEDURES
- { $$ = gz_yynullval; $$.b_type = sym_k_proc_ref_list; }
- ;
- control_list_type
- : CONTROLS
- { $$ = gz_yynullval; $$.b_type = sym_k_control_list; }
- ;
- argument_list_spec
- : id_ref { sar_object_reference (&$1); }
- | LEFT_BRACE RIGHT_BRACE
- | LEFT_BRACE argument_list_clause_list RIGHT_BRACE
- | error { lex_issue_error (RIGHT_BRACE); } RIGHT_BRACE
- ;
- callback_list_spec
- : id_ref { sar_object_reference (&$1); }
- | LEFT_BRACE RIGHT_BRACE
- | LEFT_BRACE callback_list_clause_list RIGHT_BRACE
- | error { lex_issue_error (RIGHT_BRACE); } RIGHT_BRACE
- ;
- procedure_list_spec
- : id_ref
- { sar_object_reference (&$1); }
- | LEFT_BRACE RIGHT_BRACE
- | LEFT_BRACE procedure_list_clause_list RIGHT_BRACE
- | error { lex_issue_error (RIGHT_BRACE); } RIGHT_BRACE
- ;
- control_list_spec
- : id_ref { sar_object_reference (&$1); }
- | LEFT_BRACE RIGHT_BRACE
- | LEFT_BRACE control_list_clause_list RIGHT_BRACE
- | error { lex_issue_error (RIGHT_BRACE); } RIGHT_BRACE
- ;
- argument_list_clause_list
- : argument_list_clause
- | argument_list_clause_list argument_list_clause
- ;
- callback_list_clause_list
- : callback_list_clause
- | callback_list_clause_list callback_list_clause
- ;
- procedure_list_clause_list
- : procedure_list_clause
- | procedure_list_clause_list procedure_list_clause
- ;
- control_list_clause_list
- : control_list_clause
- | control_list_clause_list control_list_clause
- ;
- argument_list_clause
- : argument_list_def SEMICOLON
- { sar_save_src_entry_end (&$2, &$1); sar_add_list_entry (&$1); $$ = gz_yynullval; }
- | argument_list_item SEMICOLON
- { sar_save_src_entry_end (&$2, &$1); sar_add_list_entry (&$1); $$ = gz_yynullval; }
- | error { lex_issue_error (SEMICOLON); } SEMICOLON
- ;
- callback_list_clause
- : callback_list_def SEMICOLON
- { sar_save_src_entry_end (&$2, &$1); sar_add_list_entry (&$1); $$ = gz_yynullval; }
- | callback_list_item SEMICOLON
- { sar_save_src_entry_end (&$2, &$1); sar_add_list_entry (&$1); $$ = gz_yynullval; }
- | error { lex_issue_error (SEMICOLON); } SEMICOLON
- ;
- procedure_list_clause
- : procedure_list_def SEMICOLON
- { sar_save_src_entry_end (&$2, &$1); sar_add_list_entry (&$1); $$ = gz_yynullval; }
- | procedure_list_def_ref SEMICOLON
- { sar_save_src_entry_end (&$2, &$1); sar_add_list_entry (&$1); $$ = gz_yynullval; }
- | error { lex_issue_error (SEMICOLON); } SEMICOLON
- ;
- control_list_clause
- : control_list_def SEMICOLON
- { sar_save_src_entry_end (&$2, &$1); sar_add_list_entry (&$1); $$ = gz_yynullval; }
- | control_list_item SEMICOLON
- { sar_save_src_entry_end (&$2, &$1); sar_add_list_entry (&$1); $$ = gz_yynullval; }
- | error { lex_issue_error (SEMICOLON); } SEMICOLON
- ;
- control_list_def
- : epsilon_production
- { $$ = gz_yynullval; sar_create_object (&$1, sym_k_list_entry); }
- control_list_specification
- { $$ = $1; }
- ;
- argument_list_def
- : epsilon_production
- { $$ = gz_yynullval; sar_create_object (&$1, sym_k_list_entry); }
- argument_list_specification
- { $$ = $1; }
- ;
- callback_list_def
- : epsilon_production
- { $$ = gz_yynullval; sar_create_object (&$1, sym_k_list_entry); }
- callback_list_specification
- { $$ = $1; }
- ;
- procedure_list_def
- : epsilon_production
- { $$ = gz_yynullval; sar_create_object (&$1, sym_k_list_entry); }
- procedure_list_specification
- { $$ = $1; }
- ;
- control_list_item
- /* Control item */
- : opt_managed control_item
- { sar_save_control_item (&$1, &$2); $$ = $1; }
- | id
- { sar_create_object (& $1, sym_k_widget_entry); $1.b_flags = sym_m_managed; $$ = gz_yynullval;}
- COLON
- control_object_definition
- { sar_save_control_widget (& $1, & $2); $$ = $1; }
- /* Child */
- | CHILD_NAME opt_child_managed
- { sar_create_child (& $1); $1.b_flags = sym_m_managed;
- $$ = gz_yynullval; }
- child_object_spec
- { sar_save_control_widget (& $1, & $2); $$ = $1; }
- | CHILD_NAME UNMANAGED
- { sar_create_child (& $1); $$ = gz_yynullval; }
- child_object_spec
- { sar_save_control_widget (& $1, & $3); $$ = $1; }
- ;
- opt_child_managed
- : epsilon_production
- | MANAGED
- ;
- argument_list_item
- /* Argument value pair */
- : value EQUAL_SIGN value
- { sar_save_argument_pair (&$1, &$3, &$2); $$ = $1; }
- /* Argument widget pair */
- | value EQUAL_SIGN CLASS_NAME id_ref
- { YYSTYPE temp [2];
- temp [0] = gz_yynullval;
- sar_create_object (&temp [0], sym_k_widget_entry);
- temp [1] = $3; sar_set_object_class (&temp [1]);
- temp [1] = $4; sar_object_reference (&temp [1]);
- sar_verify_object (&temp [1]);
- sar_save_argument_pair (&$1, &temp [0], &$2); $$ = $1; }
- ;
- callback_list_item
- /* Callback reason binding */
- : value EQUAL_SIGN procedure_reference
- { sar_save_reason_binding (&$1, &$3, &$2); $$ = $1; }
- | value EQUAL_SIGN procedure_list_def
- { sar_save_reason_binding (&$1, &$3, &$2); $$ = $1; }
- ;
- control_item
- : epsilon_production
- { sar_create_object (&$1, sym_k_widget_entry); $$ = gz_yynullval; }
- control_object_specification
- { $$ = $1; }
- ;
- opt_managed
- : epsilon_production
- { $$.b_flags = sym_m_managed; }
- | MANAGED
- { $$ = gz_yynullval; $$.b_flags = sym_m_managed; }
- | UNMANAGED
- { $$ = gz_yynullval; }
- ;
- procedure_reference
- : PROCEDURE id_ref opt_procedure_argument
- { sar_process_proc_ref (&$2, &$3, sym_k_callback_proc); $$ = $2; }
- ;
- procedure_list_def_ref
- : id_ref opt_procedure_argument
- { sar_process_proc_ref (&$1, &$2, sym_k_callback_proc); $$ = $1; }
- ;
- opt_procedure_argument
- : epsilon_production
- | LEFT_PAREN value RIGHT_PAREN
- { $$ = $2; }
- | LEFT_PAREN CLASS_NAME id_ref RIGHT_PAREN
- { YYSTYPE temp [2];
- temp [0] = gz_yynullval;
- sar_create_object (&temp [0], sym_k_widget_entry);
- temp [1] = $2; sar_set_object_class (&temp [1]);
- temp [1] = $3; sar_object_reference (&temp [1]);
- sar_verify_object (&temp [1]);
- $$ = temp [0]; }
- | LEFT_PAREN RIGHT_PAREN
- { $$ = gz_yynullval; }
- ;
- /* definition of an id */
- id
- : NAME
- | FONT_NAME
- | COLOR_NAME
- | ARGUMENT_NAME
- | REASON_NAME
- | ENUMVAL_NAME
- | CHILD_NAME
- | keyword { sar_map_keyword_to_name( &$$, &$1); }
- ;
- /* reference of an id */
- id_ref
- : id
- { sar_process_id_ref (&$1); $$ = $1; }
- ;
- keyword
- : STRING
- | BOOLEAN
- | FLOAT
- | INTEGER
- | FONT
- | ARGUMENT
- | REASON
- | PIXMAP
- | COLOR
- | NAMES
- | CASE_SENSITIVE
- | CASE_INSENSITIVE
- | VERSION
- | MANAGED
- | UNMANAGED
- | UILFILE
- | string_table_type
- | asciz_table_type
- | INTEGER_TABLE
- | TRANSLATION_TABLE
- | COMPOUND_STRING
- | COMPOUND_STRING_COMPONENT
- | CLASS_REC_NAME
- | FONT_TABLE
- | RIGHT_TO_LEFT
- | CHARACTER_SET
- | COLOR_TABLE
- | ICON
- | BACKGROUND
- | FOREGROUND
- | XBITMAPFILE
- | SEPARATE
- | ANY
- | IMPORTED
- | OBJECTS
- | KEYSYM
- | SINGLE_FLOAT
- | RGB
- | WIDE_CHARACTER
- | FONTSET
- ;
- /* values */
- character_8_value : value
- {
- $$ = $1;
- if (($$.b_type != sym_k_error_value) &&
- ($$.b_type != sym_k_any_value) &&
- (($$.b_flags &sym_m_forward_ref) == 0))
- {
- if (($$.b_type != sym_k_char_8_value) &&
- ($$.b_type != sym_k_localized_string_value))
- sar_value_type_error( &$$, sym_k_char_8_value );
- if (($$.b_flags &sym_m_private) == 0)
- sar_private_error( &$$ );
- }
- }
- ;
- private_value
- : value { $$ = $1;
- if ($$.b_type != sym_k_error_value)
- {
- if ((($$.b_flags &sym_m_private) == 0) &&
- (($$.b_flags &sym_m_forward_ref) == 0))
- sar_private_error( &$$ );
- }
- }
- ;
-
- /* BEGIN HaL fix CR 5427 */
-
- private_value_plus
- : non_export_value { $$ = $1;
- if ($$.b_type != sym_k_error_value)
- {
- if ((($$.b_flags &sym_m_private) == 0) &&
- (($$.b_flags &sym_m_forward_ref) == 0))
- sar_private_error( &$$ );
- }
- }
- ;
- | value { $$ = $1;
- if ($$.b_type != sym_k_error_value)
- {
- if ((($$.b_flags &sym_m_private) == 0) &&
- (($$.b_flags &sym_m_forward_ref) == 0))
- sar_private_error( &$$ );
- }
- }
-
- non_export_value
- : COLOR_TABLE LEFT_PAREN color_list RIGHT_PAREN { sar_make_color_table( &$$, &$3, &$1); }
-
- /* END HaL fix CR 5427 */
-
- value
- : value_1
- | value OR value_1 { $$ = $2; sar_binary_op( &$$, &$1, &$3 ); }
- | value XOR value_1 { $$ = $2; sar_binary_op( &$$, &$1, &$3 ); }
- ;
- value_1
- : value_2
- | value_1 AND value_2 { $$ = $2; sar_binary_op( &$$, &$1, &$3 ); }
- ;
- value_2
- : value_3
- | value_2 LEFT_SHIFT value_3 { $$ = $2; sar_binary_op( &$$, &$1, &$3 ); }
- | value_2 RIGHT_SHIFT value_3 { $$ = $2; sar_binary_op( &$$, &$1, &$3 ); }
- ;
- value_3
- : value_4
- | value_3 PLUS value_4 { $$ = $2; sar_binary_op( &$$, &$1, &$3 ); }
- | value_3 MINUS value_4 { $$ = $2; sar_binary_op( &$$, &$1, &$3 ); }
- ;
- value_4
- : value_5
- | value_4 MULTIPLY value_5 { $$ = $2; sar_binary_op( &$$, &$1, &$3 ); }
- | value_4 DIVIDE value_5 { $$ = $2; sar_binary_op( &$$, &$1, &$3 ); }
- ;
- value_5
- : value_6
- | MINUS value_5 { $$ = $1; sar_unary_op( &$$, &$2 ); }
- | NOT value_5 { $$ = $1; sar_unary_op( &$$, &$2 ); }
- | PLUS value_5 { $$ = $1; sar_unary_op( &$$, &$2 ); }
- ;
- value_6
- : operand
- | LEFT_PAREN value RIGHT_PAREN { $$ = $2; }
- ;
- operand
- : UNS_INT_LITERAL { sar_make_private_value( &$$, &$1, sym_k_integer_value,
- &$1, XmPIXELS); }
- | UNS_INT_LITERAL units_specification { sar_make_private_value( &$$, &$1, sym_k_integer_value,
- &$1, sar_get_units_type(&$2)); }
- | optional_charset CHAR_8_LITERAL { /* Don't use FALSE because it is a token not a Boolean! */
- Uil_lex_l_charset_specified = 0;
- sar_make_private_value( &$$, &$2, sym_k_char_8_value,
- &$2, 0); }
- | id { sar_process_id( &$$, &$1 );}
- | UNS_FLOAT_LITERAL { sar_make_private_value( &$$, &$1, sym_k_float_value,
- &$1, XmPIXELS); }
- | UNS_FLOAT_LITERAL units_specification { sar_make_private_value( &$$, &$1, sym_k_float_value,
- &$1, sar_get_units_type(&$2)); }
- | PIXMAP LEFT_PAREN character_8_value RIGHT_PAREN { sar_value_not_implemented( &$$, &$1, "pixmap literal" ); }
- | FONT LEFT_PAREN font_spec RIGHT_PAREN { $$ = $3; }
- | FONTSET LEFT_PAREN fontset_spec RIGHT_PAREN { $$ = $3; }
- | COLOR LEFT_PAREN color_spec RIGHT_PAREN { $$ = $3; }
- | REASON LEFT_PAREN character_8_value RIGHT_PAREN { sar_make_private_value(&$$, &$3, sym_k_reason_value,
- &$1, 0); }
- | CLASS_REC_NAME LEFT_PAREN character_8_value RIGHT_PAREN { sar_make_private_value(&$$, &$3, sym_k_class_rec_name_value,
- &$1, 0); }
- | ARGUMENT LEFT_PAREN character_8_value opt_arg_type RIGHT_PAREN
- { sar_make_private_value
- ( &$$, &$3, sym_k_argument_value, &$1, $4.b_type ); }
- | UILTRUE { sar_make_private_value( &$$, &$1, sym_k_bool_value,
- &$1, 0); }
- | UILFALSE { sar_make_private_value( &$$, &$1, sym_k_bool_value,
- &$1, 0); }
- | ON { sar_make_private_value( &$$, &$1, sym_k_bool_value,
- &$1, 0); }
- | OFF { sar_make_private_value( &$$, &$1, sym_k_bool_value,
- &$1, 0); }
- | optional_charset COMP_STRING { /* Don't use FALSE because it is a token not a Boolean! */
- Uil_lex_l_charset_specified = 0;
- sar_make_private_value
- ( &$$, &$2, sym_k_compound_string_value, &$2, 0); }
- | string_table_type LEFT_PAREN comp_str_list RIGHT_PAREN { sar_make_private_value( &$$, &$3, sym_k_string_table_value,
- &$1, 0); }
- | asciz_table_type LEFT_PAREN asciz_list RIGHT_PAREN { sar_make_private_value( &$$, &$3, sym_k_asciz_table_value,
- &$1, 0); }
- | INTEGER_TABLE LEFT_PAREN integer_list RIGHT_PAREN { sar_make_private_value( &$$, &$3, sym_k_integer_table_value,
- &$1, 0); }
- | TRANSLATION_TABLE LEFT_PAREN string_list RIGHT_PAREN { sar_make_private_value( &$$, &$3, sym_k_trans_table_value,
- &$1, 0); }
- | COMPOUND_STRING LEFT_PAREN comp_str_result RIGHT_PAREN { $$ = $3; }
- | COMPOUND_STRING_COMPONENT LEFT_PAREN comp_str_comp_result RIGHT_PAREN { $$ = $3; }
- | FONT_TABLE LEFT_PAREN font_list RIGHT_PAREN { $$ = $3; }
- | ICON LEFT_PAREN icon_spec RIGHT_PAREN { $$ = $3; }
- | FLOAT LEFT_PAREN value RIGHT_PAREN { $$ = $1; sar_unary_op( &$$, &$3 ); }
- | INTEGER LEFT_PAREN value RIGHT_PAREN { $$ = $1; sar_unary_op( &$$, &$3 ); }
- | XBITMAPFILE LEFT_PAREN character_8_value RIGHT_PAREN { sar_make_private_value(&$$, &$3, sym_k_xbitmapfile_value,
- &$1, 0); }
- | KEYSYM LEFT_PAREN character_8_value RIGHT_PAREN { sar_make_private_value(&$$, &$3, sym_k_keysym_value,
- &$1, 0); }
- | SINGLE_FLOAT LEFT_PAREN value RIGHT_PAREN { $$ = $1; sar_unary_op( &$$, &$3 ); }
- | RGB LEFT_PAREN rgb_list RIGHT_PAREN { sar_make_private_value( & $$, & $3, sym_k_rgb_value,
- &$1, 0); }
- | WIDE_CHARACTER LEFT_PAREN wchar_str_result RIGHT_PAREN { $$ = $3; }
- | LOC_STRING { sar_make_private_value(&$$, &$1, sym_k_localized_string_value,
- &$1, 0); }
- ;
- string_list
- : /* empty */
- { $$ = gz_yynullval; }
- | string_list_2
- { $$ = $1; }
- ;
- string_list_2
- : private_value
- { sar_append_table_value (&$1, &gz_yynullval, sym_k_trans_table_value, &$1); $$ = $1; }
- | string_list_2 COMMA private_value
- { sar_append_table_value (&$3, &$1, sym_k_trans_table_value, &$2); $$ = $3; }
- ;
- asciz_list
- : /* empty */
- { $$ = gz_yynullval; }
- | asciz_list_2
- { $$ = $1; }
- ;
- asciz_list_2
- : private_value
- { sar_append_table_value (&$1, &gz_yynullval, sym_k_asciz_table_value, &$1); $$ = $1; }
- | asciz_list_2 COMMA private_value
- { sar_append_table_value (&$3, &$1, sym_k_asciz_table_value, &$2); $$ = $3; }
- ;
- integer_list
- : /* empty */
- { $$ = gz_yynullval; }
- | integer_list_2
- { $$ = $1; }
- ;
- integer_list_2
- : private_value
- { sar_append_table_value (&$1, &gz_yynullval, sym_k_integer_table_value, &$1); $$ = $1; }
- | integer_list_2 COMMA private_value
- { sar_append_table_value (&$3, &$1, sym_k_integer_table_value, &$2); $$ = $3; }
- ;
- /* RAP rgb data type */
- rgb_list
- : private_value COMMA private_value COMMA private_value
- {sar_append_table_value(&$1, & gz_yynullval, sym_k_integer_table_value, & $1);
- sar_append_table_value(& $3, & $1, sym_k_integer_table_value, & $2);
- sar_append_table_value(& $5, & $3, sym_k_integer_table_value, & $4);
- $$ = $5;}
- ;
- comp_str_list
- : /* empty */
- { $$ = gz_yynullval; }
- | comp_str_list_2
- { $$ = $1; }
- ;
- comp_str_list_2
- : private_value
- { sar_append_table_value (&$1, &gz_yynullval, sym_k_string_table_value, &$1); $$ = $1; }
- | comp_str_list_2 COMMA private_value
- { sar_append_table_value (&$3, &$1, sym_k_string_table_value, &$2); $$ = $3; }
- ;
- opt_arg_type
- : /* empty */ { $$ = gz_yynullval; $$.b_type = sym_k_any_value; }
- | COMMA arg_value_type { $$ = gz_yynullval; $$.b_type = $2.b_type; }
- | COMMA ANY { $$ = gz_yynullval; $$.b_type = sym_k_any_value; }
- ;
- comp_str_result
- : private_value { sar_make_comp_str( &$$, &$1, &gz_yynullval, &$-1 ); }
- | private_value comp_str_attrs { sar_make_comp_str( &$$, &$1, &$2, &$-1 ); }
- ;
- comp_str_comp_result
- : ENUMVAL_NAME { sar_make_comp_str_comp(&$$, &$1, &gz_yynullval, &$-1 ); }
- | ENUMVAL_NAME COMMA ENUMVAL_NAME { sar_make_comp_str_comp( &$$, &$1, &$3, &$-1 ); }
- | ENUMVAL_NAME COMMA CHAR_8_LITERAL { sar_make_comp_str_comp( &$$, &$1, &$3, &$-1 ); }
- | ENUMVAL_NAME COMMA LOC_STRING { sar_make_comp_str_comp( &$$, &$1, &$3, &$-1 ); }
- | ENUMVAL_NAME COMMA CHARSET_NAME { sar_make_comp_str_comp( &$$, &$1, &$3, &$-1 ); }
- ;
- comp_str_attrs
- : COMMA comp_str_attr { sar_chk_comp_str_attr( &$$, &$2, &gz_yynullval ); }
- | comp_str_attrs COMMA comp_str_attr { sar_chk_comp_str_attr( &$$, &$3, &$1 ); }
- ;
- comp_str_attr
- : CHARACTER_SET EQUAL_SIGN valid_charset { $$.b_type = $1.b_type;
- $$.b_tag = $3.b_tag;
- $$.value.az_keyword_entry = $3.value.az_keyword_entry;
- $$.value.az_symbol_entry = $3.value.az_symbol_entry; }
- | RIGHT_TO_LEFT EQUAL_SIGN private_value { $$.b_type = $1.b_type;
- $$.value.az_symbol_entry = $3.value.az_symbol_entry; }
- | SEPARATE EQUAL_SIGN private_value { $$.b_type = $1.b_type;
- $$.value.az_symbol_entry = $3.value.az_symbol_entry; }
- ;
- wchar_str_result
- : private_value { sar_make_wchar_str( &$$, &$1, &gz_yynullval, &$-1 ); }
- ;
- font_spec
- : character_8_value COMMA CHARACTER_SET EQUAL_SIGN valid_charset
- { sar_make_font( &$$, &$5, &$1, &$-1 ); }
- | character_8_value { sar_make_font( &$$, &gz_yynullval, &$1, &$-1 ); }
- ;
- fontset_spec
- : character_8_value COMMA CHARACTER_SET EQUAL_SIGN valid_charset
- { sar_make_fontset( &$$, &$5, &$1, &$-1 ); }
- | character_8_value { sar_make_fontset( &$$, &gz_yynullval, &$1, &$-1 ); }
- ;
- font_list
- : font_item { sar_make_font_table( &$$, &$1, &gz_yynullval, &$-1 ); }
- | font_list COMMA font_item { sar_make_font_table( &$$, &$3, &$1, &$-1 ); }
- ;
- /*
- ** THIS PRODUCTION DOESN'T LOOK RIGHT!!!!!!!!!!!!!!!!!!!!!!
- */
- font_item
- : valid_charset EQUAL_SIGN private_value { sar_make_font_item( &$$, &$1, &$3 ); }
- | private_value { sar_make_font_item( &$$, &gz_yynullval, &$1 ); }
- ;
- optional_charset
- : POUND valid_charset { /* Don't use TRUE because it is a token not a Boolean! */
- $$ = $2;
- Uil_lex_l_charset_specified = 1;}
- | epsilon_production
- ;
-
- valid_charset
- : CHARSET_NAME { sar_charset_verify (&$1); $$ = $1; }
- | CHARACTER_SET LEFT_PAREN charset_info RIGHT_PAREN { $$ = $3; }
- | NAME { sar_make_fallback_charset(&$1);
- $$ = $1; }
-
- ;
- charset_info
- : character_8_value { sar_make_private_value(&$$, &$1, sym_k_char_8_value,
- &$1, 0);
- sar_make_charset (&$$, &$$, &gz_yynullval, &$1); }
- | character_8_value charset_attrs { sar_make_private_value(&$$, &$1, sym_k_char_8_value,
- &$1, 0);
- sar_make_charset (&$$, &$$, &$2, &$1); }
- ;
- charset_attrs
- : COMMA charset_attr { sar_chk_charset_attr( &$$, &$2, &gz_yynullval ); }
- | charset_attrs COMMA charset_attr { sar_chk_charset_attr( &$$, &$3, &$1 ); }
- ;
- charset_attr
- : RIGHT_TO_LEFT EQUAL_SIGN private_value { $$.b_type = $1.b_type;
- if ($3.b_type != sym_k_bool_value)
- sar_value_type_error( &$3, sym_k_bool_value );
- $$.value.az_symbol_entry = $3.value.az_symbol_entry; }
- | SIXTEEN_BIT EQUAL_SIGN private_value { $$.b_type = $1.b_type;
- if ($3.b_type != sym_k_bool_value)
- sar_value_type_error( &$3, sym_k_bool_value );
- $$.value.az_symbol_entry = $3.value.az_symbol_entry; }
- ;
- color_list
- : color_item { sar_append_color_item( &$$, &$1, &gz_yynullval ); }
- | color_list COMMA color_item { sar_append_color_item( &$$, &$3, &$1 ); }
- ;
- color_item
- : BACKGROUND COLOR EQUAL_SIGN character_8_value { sar_make_color_item( &$$, &$1, &$4 ); }
- | FOREGROUND COLOR EQUAL_SIGN character_8_value { sar_make_color_item( &$$, &$1, &$4 ); }
- | value EQUAL_SIGN character_8_value { sar_make_color_item( &$$, &$1, &$3 ); }
- ;
- color_spec
- : character_8_value { sar_make_color( &$$, &$1, &gz_yynullval, &$-1 ); }
- | character_8_value COMMA mono_color_spec { sar_make_color( &$$, &$1, &$3, &$-1 ); }
- ;
- mono_color_spec
- : BACKGROUND
- | FOREGROUND
- ;
- icon_spec
- : icon_rows { sar_make_icon( &$$, &$1, &gz_yynullval, &$-1); }
- | COLOR_TABLE EQUAL_SIGN private_value COMMA icon_rows
- { sar_make_icon( &$$, &$5, &$3, &$-1 ); }
- ;
- icon_rows
- : private_value
- { sar_append_table_value (&$1, &gz_yynullval, sym_k_icon_value, &$1); $$ = $1; }
- | icon_rows COMMA private_value
- { sar_append_table_value (&$3, &$1, sym_k_icon_value, &$2); $$ = $3; }
- ;
- units_specification
- : PIX
- { $$ = $1; }
- | PIXEL
- { $$ = $1; }
- | PIXELS
- { $$ = $1; }
- | IN
- { $$ = $1; }
- | INCH
- { $$ = $1; }
- | INCHES
- { $$ = $1; }
- | CM
- { $$ = $1; }
- | CENTIMETER
- { $$ = $1; }
- | CENTIMETERS
- { $$ = $1; }
- | MM
- { $$ = $1; }
- | MILLIMETER
- { $$ = $1; }
- | MILLIMETERS
- { $$ = $1; }
- | PT
- { $$ = $1; }
- | POINT
- { $$ = $1; }
- | POINTS
- { $$ = $1; }
- | FU
- { $$ = $1; }
- | FONT_UNIT
- { $$ = $1; }
- | FONT_UNITS
- { $$ = $1; }
- ;
- %%
- /* Dummy error routine for the parser. We will output our own
- error messages. */
- int yyerror (s)
- char * s;
- {
- return 0;
- }
|