grammar3.idl revision 608:7e06bf1dcb09
1196200Sscottl/* 2196200Sscottl * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. 3196200Sscottl * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4196200Sscottl * 5196200Sscottl * This code is free software; you can redistribute it and/or modify it 6196200Sscottl * under the terms of the GNU General Public License version 2 only, as 7196200Sscottl * published by the Free Software Foundation. Oracle designates this 8196200Sscottl * particular file as subject to the "Classpath" exception as provided 9196200Sscottl * by Oracle in the LICENSE file that accompanied this code. 10196200Sscottl * 11196200Sscottl * This code is distributed in the hope that it will be useful, but WITHOUT 12196200Sscottl * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13196200Sscottl * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14196200Sscottl * version 2 for more details (a copy is included in the LICENSE file that 15196200Sscottl * accompanied this code). 16196200Sscottl * 17196200Sscottl * You should have received a copy of the GNU General Public License version 18196200Sscottl * 2 along with this work; if not, write to the Free Software Foundation, 19196200Sscottl * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20196200Sscottl * 21196200Sscottl * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22196200Sscottl * or visit www.oracle.com if you need additional information or have any 23196200Sscottl * questions. 24196200Sscottl */ 25196200Sscottl 26196200Sscottl/* 27196200Sscottl * COMPONENT_NAME: idl.parser 28196200Sscottl * 29196200Sscottl * ORIGINS: 27 30225331Sjhb * 31196282Sscottl * 5639-D57, (C) COPYRIGHT International Business Machines Corp., 1997, 1998 32196200Sscottl * 33196200Sscottl */ 34196200Sscottl 35196200Sscottl(1) <specification> <imports> <definition> <specification'> // CORBA3 36196200Sscottl 37196200Sscottl(1) <imports> e // CORBA3 38196200Sscottl <import> <imports> // CORBA3 39196200Sscottl 40196200Sscottl(1) <import> "import" <imported_scope> ";" // CORBA3 41196200Sscottl 42196200Sscottl(1) <imported_scope> <scoped_name> // CORBA3 43196200Sscottl <string_literal> // CORBA3 44196200Sscottl 45196200Sscottl(1) <specification'> e 46223345Sbz <definition><specification'> 47223345Sbz 48196200Sscottl(2) <definition> <type_dcl> ";" 49196200Sscottl <const_dcl> ";" 50196200Sscottl <except_dcl> ";" 51196200Sscottl <interface> ";" 52196200Sscottl <module> ";" 53196200Sscottl <value> ";" 54196200Sscottl <type_id_dcl> ";" // CORBA3 55196200Sscottl <type_prefix_dcl> ";" // CORBA3 56196200Sscottl <component> ";" // CORBA3 57196200Sscottl <home_dcl> ";" // CORBA3 58196200Sscottl 59196200Sscottl(2) <type_id_dcl> "typeId" <scoped_name> <string_literal> // CORBA3 60196200Sscottl 61196200Sscottl(2) <type_prefix_dcl> "typePrefix" <scoped_name> <string_literal> // CORBA3 62196200Sscottl 63196200Sscottl(3) <module> "module" <id> "{" <module'> "}" 64196200Sscottl 65196200Sscottl(3) <module'> <definition><module''> 66251516Ssbruno 67251516Ssbruno(3) <module''> <definition><module''> 68251516Ssbruno e 69196200Sscottl 70196200Sscottl(4) <interface> <interface_dcl> 71223345Sbz <forward_dcl> 72223345Sbz 73196200Sscottl(5) <interface_dcl> <interface_header> "{" <interface_body> "}" 74196200Sscottl 75196200Sscottl(6) <forward_dcl> "abstract" "interface" <id> 76223345Sbz "local" "interface" <id> // CORBA3 77223345Sbz "interface" <id> 78196200Sscottl 79221208Sjhb(7) <interface_header> "abstract" "interface" <id> <interface_header'> 80221208Sjhb "local" "interface" <id> <interface_header'> // CORBA3 81221208Sjhb "interface" <id> <interface_header'> 82196200Sscottl 83196200Sscottl(7) <interface_header'> e 84196200Sscottl <interface_inheritance_spec> 85196200Sscottl 86196200Sscottl(8) <interface_body> <export><interface_body'> 87196200Sscottl 88196200Sscottl(8) <interface_body'> e 89196200Sscottl <export><interface_body'> 90196200Sscottl 91196200Sscottl(9) <export> <type_dcl> ";" 92196200Sscottl <const_dcl> ";" 93196200Sscottl <except_dcl> ";" 94254906Ssbruno <attr_dcl> ";" 95254906Ssbruno <op_dcl> ";" 96254906Ssbruno <type_id_dcl> ";" // CORBA3 97196200Sscottl <type_prefix_dcl> ";" // CORBA3 98196200Sscottl 99196200Sscottl(10) <interface_inheritance_spec> ":" <scoped_name> <inheritance_spec'> 100196200Sscottl 101196200Sscottl(10) <interface_inheritance_spec'> e 102196200Sscottl "," <scoped_name> <inheritance_spec'> 103196200Sscottl 104196200Sscottl(12) <scoped_name> <id> <scoped_name'> 105196200Sscottl "::" <id> <scoped_name'> 106196200Sscottl 107196200Sscottl(12) <scoped_name'> e 108196200Sscottl "::" <id> <scoped_name'> 109196200Sscottl 110196200Sscottl(13) <value> <value_dcl> 111196200Sscottl <value_abs_dcl> 112225331Sjhb <value_box_dcl> 113196200Sscottl <value_forward_dcl> 114196200Sscottl 115196200Sscottl(14) <value_forward_dcl> "abstract" "valuetype" <id> 116196200Sscottl "valuetype" <id> 117196200Sscottl 118196200Sscottl(15) <value_box_dcl> "valuetype" <id> <type_spec> 119196200Sscottl 120196200Sscottl(16) <value_abs_dcl> "abstract" "valuetype" <id> <value_inheritance_spec> "{" <export> <vad> "}" 121196200Sscottl "abstract" "valuetype" <id> "{" <export> <vad> "}" 122196200Sscottl 123196200Sscottl(16) <vad> e 124196200Sscottl <export> <vad> 125196200Sscottl 126196200Sscottl(17) <value_dcl> <value_header> "{" <value_element> <ve> "}" 127196200Sscottl 128196200Sscottl(17) <ve> e 129196200Sscottl <value_element> <ve> 130196200Sscottl 131196200Sscottl(18) <value_header> "custom" "valuetype" <id> <value_inheritance_spec> 132196200Sscottl "valuetype" <id> <value_inheritance_spec> 133196200Sscottl "custom" "valuetype" <id> 134196200Sscottl "valuetype" <id> 135196200Sscottl 136196200Sscottl(19) <value_inheritance_spec> <opt_inherits> <opt_supports> 137196200Sscottl 138196200Sscottl(19) <opt_inherits> e 139196200Sscottl ":" "truncatable" <value_name> <value_name_list> 140196200Sscottl ":" <value_name> <value_name_list> 141196200Sscottl 142196200Sscottl(19) <value_name_list> e 143196200Sscottl "," <value_name> <value_name_list> 144196200Sscottl 145196200Sscottl(19) <opt_supports> e 146196200Sscottl "supports" <interface_name> <interface_name_list> 147196200Sscottl 148196200Sscottl(19) <interface_name_list> e 149251516Ssbruno "," <interface_name> <interface_name_list> 150251516Ssbruno 151251516Ssbruno(20) <value_name> <scoped_name> 152251516Ssbruno 153251516Ssbruno(21) <value_element> <export> 154251516Ssbruno <state_member> 155251516Ssbruno <init_dcl> 156251516Ssbruno 157251516Ssbruno(22) <state_member> "public" <type_spec> <declarators> ";" 158251516Ssbruno "private" <type_spec> <declarators> ";" 159251516Ssbruno 160251516Ssbruno(23) <init_dcl> "factory" <id> "(" ")" 161251516Ssbruno "factory" <id> "(" <init_param_dcls> ")" 162251516Ssbruno 163251516Ssbruno(24) <init_param_dcls> <init_param_dcl> 164196200Sscottl <init_param_dcl> "," <init_param_dcls> 165249257Smarkj 166249257Smarkj(25) <init_param_dcl> <init_param_attribute> <param_type_spec> <simple_declarator> 167249257Smarkj 168249257Smarkj(26) <init_param_attribute> "in" 169249257Smarkj 170249257Smarkj(27) <const_dcl> "const" <const_type> <id> "=" <const_exp> 171257820Ssbruno 172257820Ssbruno(28) <const_type> <integer_type> 173257820Ssbruno <char_type> 174257820Ssbruno <wide_char_type> 175257820Ssbruno <boolean_type> 176257820Ssbruno <floating_pt_type> 177196200Sscottl <string_type> 178196200Sscottl <wide_string_type> 179196200Sscottl <scoped_name> 180196200Sscottl <octet_type> 181196200Sscottl 182196200Sscottl(29) <const_exp> <or_expr> 183196200Sscottl 184196200Sscottl(30) <or_expr> <xor_expr> <or_expr'> 185196200Sscottl 186196200Sscottl(30) <or_expr'> e 187196200Sscottl "|" <xor_expr> <or_expr'> 188196200Sscottl 189196200Sscottl(31) <xor_expr> <and_expr> <xor_expr'> 190196200Sscottl 191196200Sscottl(31) <xor_expr'> e 192196200Sscottl "^" <and_expr> <xor_expr'> 193196200Sscottl 194196200Sscottl(32) <and_expr> <shift_expr><and_expr'> 195196200Sscottl 196196200Sscottl(32) <and_expr'> e 197223345Sbz "&" <shift_expr> <and_expr'> 198223345Sbz 199223345Sbz(33) <shift_expr> <add_expr> <shift_expr'> 200223345Sbz 201223345Sbz(33) <shift_expr'> e 202223345Sbz ">>" <add_expr> <shift_expr'> 203223345Sbz "<<" <add_expr> <shift_expr'> 204223345Sbz 205223345Sbz(34) <add_expr> <mult_expr> <add_expr'> 206223345Sbz 207223345Sbz(34) <add_expr'> e 208223345Sbz "+" <mult_expr> <add_expr'> 209223345Sbz "-" <mult_expr> <add_expr'> 210196200Sscottl 211196200Sscottl(35) <mult_expr> <unary_expr> <mult_expr'> 212196200Sscottl 213196200Sscottl(35) <mult_expr'> e 214196200Sscottl "*" <unary_expr> <mult_expr'> 215196200Sscottl "/" <unary_expr> <mult_expr'> 216196200Sscottl "%" <unary_expr> <mult_expr'> 217196200Sscottl 218196200Sscottl(36) <unary_expr> <unary_operator> <primary_expr> 219196200Sscottl <primary_expr> 220196200Sscottl 221196200Sscottl(37) <unary_operator> "-" 222196200Sscottl "+" 223196200Sscottl "~" 224196200Sscottl 225196200Sscottl(38) <primary_expr> <scoped_name> 226196200Sscottl <literal> 227196200Sscottl "(" <const_exp> ")" 228196200Sscottl 229196200Sscottl(39) <literal> <<integer_literal>> 230223345Sbz <<string_literal>>> 231223345Sbz <<wide_string_literal>>> 232223345Sbz <<character_literal>> 233223345Sbz <<wide_character_literal>> 234223345Sbz <<fixed_pt_literal>> 235223345Sbz <<floating_pt_literal>> 236223345Sbz <<boolean_literal>> 237223345Sbz 238223345Sbz(40) <boolean_literal> "TRUE" 239223345Sbz "FALSE" 240196200Sscottl 241196200Sscottl(41) <positive_int_const> <const_exp> 242196200Sscottl 243196200Sscottl(42) <type_dcl> "typedef" <type_declarator> 244196200Sscottl <struct_type> 245196200Sscottl <union_type> 246196200Sscottl <enum_type> 247196200Sscottl "native" <simple_declarator> 248196200Sscottl 249196200Sscottl(43) <type_declarator> <type_spec> <declarators> 250196200Sscottl 251196200Sscottl(44) <type_spec> <simple_type_spec> 252196200Sscottl <constr_type_spec> 253196200Sscottl 254196200Sscottl(45) <simple_type_spec> <base_type_spec> 255196200Sscottl <template_type_spec> 256196200Sscottl <scoped_name> 257196200Sscottl 258196200Sscottl(46) <base_type_spec> <floating_pt_type> 259196200Sscottl <integer_type> 260196200Sscottl <char_type> 261196200Sscottl <wide_char_type> 262196200Sscottl <boolean_type> 263196200Sscottl <octet_type> 264196200Sscottl <any_type> 265196200Sscottl <object_type> 266196200Sscottl <value_base_type> 267196200Sscottl 268196200Sscottl(47) <template_type_spec> <sequence_type> 269196200Sscottl <string_type> 270196200Sscottl <wide_string_type> 271196200Sscottl <fixed_pt_type> 272196200Sscottl 273196200Sscottl(48) <constr_type_spec> <struct_type> 274196200Sscottl <union_type> 275196200Sscottl <enum_type> 276196200Sscottl 277196200Sscottl(49) <declarators> <declarator> <declarators'> 278196200Sscottl 279196200Sscottl(49) <declarators'> e 280196200Sscottl "," <declarator> <declarators'> 281196200Sscottl 282196200Sscottl(50) <declarator> <simple_declarator> 283196200Sscottl <complex_declarator> 284196200Sscottl 285196200Sscottl(51) <simple_declarator> <id> 286233522Sjoel 287196200Sscottl(52) <complex_declarator> <array_declarator> 288196200Sscottl 289196200Sscottl(53) <floating_pt_type> "float" 290196200Sscottl "double" 291196200Sscottl "long" "double" 292196200Sscottl 293196200Sscottl(54) <integer_type> <signed_int> 294196200Sscottl <unsigned_int> 295196200Sscottl 296196200Sscottl(55) <signed_int> "long" 297196200Sscottl "short" 298196200Sscottl "long" "long" 299196200Sscottl 300196200Sscottl// 56-58 omitted 301196200Sscottl 302196200Sscottl(59) <unsigned_int> "unsigned" <signed_int> 303196200Sscottl 304196200Sscottl// 60-62 omitted 305196200Sscottl 306196200Sscottl(63) <char_type> "char" 307196200Sscottl 308196200Sscottl(64) <wide_char_type> "wchar" 309196200Sscottl 310196200Sscottl(65) <boolean_type> "boolean" 311196200Sscottl 312196200Sscottl(66) <octet_type> "octet" 313210933Sjoel 314196200Sscottl(67) <any_type> "any" 315196200Sscottl 316196200Sscottl(68) <object_type> "Object" 317196200Sscottl 318196200Sscottl(69) <struct_type> "struct" <id> "{" <member_list> "}" 319196200Sscottl 320196200Sscottl(70) <member_list> <member> <member_list'> 321196200Sscottl 322196200Sscottl(70) <member_list'> e 323196200Sscottl <member> <member_list'> 324196200Sscottl 325196200Sscottl(71) <member> <type_spec> <declarators> ";" 326196200Sscottl 327196200Sscottl(72) <union_type> "union" <id> "switch" "(" <switch_type_spec> ")" "{" <switch_body> "}" 328196200Sscottl 329196200Sscottl(73) <switch_type_spec> <integer_type> 330196200Sscottl <char_type> 331196200Sscottl <boolean_type> 332196200Sscottl <enum_type> 333196200Sscottl <scoped_name> 334196200Sscottl 335196200Sscottl(74) <switch_body> <case> <switch_body'> 336233522Sjoel 337196200Sscottl(74) <switch_body'> e 338196200Sscottl <case> <switch_body'> 339196200Sscottl 340196200Sscottl(75) <case> <case_label> <case'> <element_spec> ";" 341196200Sscottl 342196200Sscottl(75) <case'> e 343196200Sscottl <case_label> <case'> 344196200Sscottl 345196200Sscottl(76) <case_label> "case" <const_exp> ":" 346196200Sscottl "default" ":" 347196200Sscottl 348196200Sscottl(77) <element_spec> <type_spec> <declarator> 349196200Sscottl 350196200Sscottl(78) <enum_type> "enum" <id> "{" <id> <enum_type'> "}" 351251516Ssbruno 352251516Ssbruno(78) <enum_type'> e 353196200Sscottl "," <id> <enum_type'> 354196200Sscottl 355196200Sscottl// 79 omitted 356196200Sscottl 357221208Sjhb(80) <sequence_type> "sequence" "<" <simple_type_spec> <sequence_type'> 358221208Sjhb 359221208Sjhb(80) <sequence_type'> "," <positive_int_const> ">" 360196200Sscottl ">" 361196200Sscottl 362196200Sscottl(81) <string_type> "string" 363196200Sscottl "string" "<" <positive_int_const> ">" 364196200Sscottl 365196200Sscottl(82) <wide_string_type> "wstring" 366196200Sscottl "wstring" "<" <positive_int_const> ">" 367196200Sscottl 368196200Sscottl(83) <array_declarator> <id> <fixed_array_size> 369196200Sscottl 370196200Sscottl(84) <fixed_array_size> "[" <positive_int_const> "]" 371196200Sscottl 372196200Sscottl(85) <attr_dcl> <readonly_attr_spec> // CORBA3 373196200Sscottl <attr_spec> // CORBA3 374196200Sscottl 375196200Sscottl(85) <readonly_attr_spec> <readonly_attr_header> <readonly_attr_declarator> // CORBA3 376196200Sscottl 377196200Sscottl(85) <readonly_attr_header> "readonly" "attribute" <param_type_spec> // CORBA3 378196200Sscottl 379196200Sscottl(85) <readonly_attr_declarator> <simple_declarator> <get_excep_expr> // CORBA3 380196200Sscottl <simple_declarator> <sds> // CORBA3 381196200Sscottl 382196200Sscottl(85) <sds> e // CORBA3 383196200Sscottl <simple_declarator> <sds> // CORBA3 384254906Ssbruno 385254906Ssbruno(85) <attr_spec> "attribute" <param_type_spec> <attr_declarator> // CORBA3 386254906Ssbruno 387254906Ssbruno(85) <attr_declarator> <simple_declarator> <attr_raises_expr> // CORBA3 388254906Ssbruno <simple_declarator> <sds> // CORBA3 389196200Sscottl 390196200Sscottl(85) <attr_raises_expr> <get_excep_expr> // CORBA3 391196200Sscottl <get_excep_expr> <set_excep_expr> // CORBA3 392196200Sscottl <set_excep_expr> // CORBA3 393196200Sscottl 394196200Sscottl(85) <get_excep_expr> "getRaises" <exception_list> // CORBA3 395196200Sscottl 396196200Sscottl(85) <set_excep_expr> "setRaises" <exception_list> // CORBA3 397196200Sscottl 398196200Sscottl(85) <exception_list> "(" <scoped_name> <els> ")" // CORBA3 399196200Sscottl 400196200Sscottl(85) <els> e // CORBA3 401196200Sscottl "," <scoped_name> <els> // CORBA3 402196200Sscottl 403196200Sscottl(86) <except_dcl> "exception" <id> "{" <except_dcl'> "}" 404196200Sscottl 405196200Sscottl(86) <except_dcl'> e 406196200Sscottl <member> <except_dcl'> 407196200Sscottl 408196200Sscottl(87) <op_dcl> <op_attribute> <op_type_spec> <op_dcl'> 409196200Sscottl <op_type_spec> <op_dcl'> 410225331Sjhb 411196200Sscottl(87) <op_dcl'> <id> <parameter_dcls> <op_dcl''> 412196200Sscottl <macroID> <parameter_dcls'> <op_dcl''> 413225331Sjhb 414196200Sscottl(87) <op_dcl''> e 415196200Sscottl <context_expr> 416196200Sscottl <raises_expr> 417196200Sscottl <raises_expr> <context_expr> 418196200Sscottl 419196200Sscottl(88) <op_attribute> "oneway" 420225331Sjhb 421196200Sscottl(89) <op_type_spec> <param_type_spec> 422225331Sjhb "void" 423225331Sjhb 424225331Sjhb(90) <parameter_dcls> "(" <parameter_dcls'> 425225331Sjhb 426225331Sjhb(90) <parameter_dcls'> <param_dcl> <parameter_dcls''> ")" 427196200Sscottl ")" 428196200Sscottl 429196200Sscottl(90) <parameter_dcls''> e 430196200Sscottl "," <param_dcl> <parameter_dcls''> 431196200Sscottl 432196200Sscottl(91) <param_dcl> <param_attribute> <param_type_spec> <id> 433196200Sscottl 434196200Sscottl(92) <param_attribute> "in" 435196200Sscottl "out" 436196200Sscottl "inout" 437196200Sscottl 438196200Sscottl(93) <raises_expr> "raises" "(" <scoped_name> <raises_expr'> ")" 439196200Sscottl 440220363Sjhb(93) <raises_expr'> e 441196200Sscottl "," <scoped_name> <raises_expr'> 442196200Sscottl 443196200Sscottl(94) <context_expr> "context" "(" <string_literal> <context_expr'> ")" 444196200Sscottl 445196200Sscottl(94) <context_expr'> e 446196200Sscottl "," <string_literal> <context_expr'> 447196200Sscottl 448196200Sscottl(95) <param_type_spec> <base_type_spec> 449220363Sjhb <string_type> 450220363Sjhb <wide_string_type> 451220363Sjhb <scoped_name> 452220363Sjhb 453220363Sjhb(96) <fixed_pt_type> "fixed" "<" <positive_int_const> "," <positive_int_const> ">" 454220363Sjhb 455220363Sjhb(97) <fixed_pt_const_type> "fixed" 456220363Sjhb 457220363Sjhb(98) <value_base_type> "ValueBase" 458220363Sjhb 459220363Sjhb// CORBA3 Component and Home IDL 460220363Sjhb 461196200Sscottl(200) <component> <component_dcl> 462196200Sscottl <component_forward_dcl> 463196200Sscottl 464196200Sscottl(201) <component_forward_dcl> "component" <id> 465196200Sscottl 466196200Sscottl(202) <component_dcl> <component_header> "{" <component_body> "}" 467196200Sscottl 468196200Sscottl(203) <component_header> "component" <id> 469196200Sscottl "component" <id> <component_inheritance_spec> 470196200Sscottl "component" <id> <supported_interface_spec> 471196200Sscottl "component" <id> <component_inheritance_spec> <supported_interface_spec> 472196200Sscottl 473196200Sscottl(204) <supported_interface_spec> "supports" <scoped_name> <snames> 474196200Sscottl 475196200Sscottl(204) <snames> e 476196200Sscottl "," <scoped_name> <snames> 477196200Sscottl 478196200Sscottl(205) <component_inheritance_spec> ":" <scoped_name> 479196200Sscottl 480196200Sscottl(206) <component_body> <component_export> <ces> 481196200Sscottl 482196200Sscottl(206) <ces> e 483196200Sscottl <component_export> <ces> 484196200Sscottl 485196200Sscottl(207) <component_export> <provides_dcl> ";" 486196200Sscottl <uses_dcl> ";" 487196200Sscottl <emits_dcl> ";" 488196200Sscottl <publishes_dcl> ";" 489196200Sscottl <consumes_dcl> ";" 490196200Sscottl <attr_dcl> ";" 491196200Sscottl 492196200Sscottl(208) <provides_dcl> "provides" <interface_type> <id> 493196200Sscottl 494196200Sscottl(209) <interface_type> <scoped_name> 495196200Sscottl "Object" 496196200Sscottl 497196200Sscottl(210) <uses_dcl> "uses" <interface_type> <id> 498196200Sscottl "uses" "multiple" <interface_type> <id> 499196200Sscottl 500196200Sscottl(211) <emits_dcl> "emits" <scoped_name> <id> 501196200Sscottl 502196200Sscottl(212) <publishes_dcl> "publishes" <scoped_name> <id> 503196200Sscottl 504196200Sscottl(213) <consumes_dcl> "consumes" <scoped_name> <id> 505196200Sscottl 506196200Sscottl(214) <home_dcl> <home_header> <home_body> 507196200Sscottl 508196200Sscottl(215) <home_header> "home" <id> <home_inheritance_spec> "manages" <scoped_name> 509196200Sscottl "home" <id> "manages" <scoped_name> 510196200Sscottl "home" <id> <home_inheritance_spec> "manages" <scoped_name> <primary_key_spec> 511196200Sscottl "home" <id> "manages" <scoped_name> <primary_key_spec> 512196200Sscottl 513196200Sscottl(216) <home_inheritance_spec> ":" <scoped_name> 514196200Sscottl 515196200Sscottl(217) <primary_key_spec> "primaryKey" <scoped_name> 516196200Sscottl 517196200Sscottl(218) <home_body> "{" <home_export> <hes> "}" 518196200Sscottl 519196200Sscottl(218) <hes> e 520196200Sscottl <home_export> <hes> 521196200Sscottl 522196200Sscottl(219) <home_export> <export> 523196200Sscottl <factory_dcl> ";" 524196200Sscottl <finder_dcl> ";" 525196200Sscottl 526196200Sscottl(220) <factory_dcl> "factory" <id> "(" <init_param_dcls> ")" <raises_expr> 527196200Sscottl "factory" <id> "(" ")" <raises_expr> 528196200Sscottl "factory" <id> "(" <init_param_dcls> ")" 529196200Sscottl "factory" <id> "(" ")" 530196200Sscottl 531196200Sscottl(221) <finder_dcl> "finder" <id> "(" <init_param_dcls> ")" <raises_expr> 532196200Sscottl "finder" <id> "(" ")" <raises_expr> 533196200Sscottl "finder" <id> "(" <init_param_dcls> ")" 534196200Sscottl "finder" <id> "(" ")" 535196200Sscottl 536196200SscottlNOTES: 537196200Sscottl 538196200Sscottl- #define id(id, id, ...) token-string is a macro definition. There can be no space between the first id and the left paren. Since id( must be treated as a token and id( can also appear in op_dcl, see that production for the effect of this token. 539196200Sscottl 540196200Sscottl