## org.openorb.compiler.parser
Class IdlGrammar

    java.lang.Object
      |
      +--org.openorb.compiler.parser.IdlGrammar

public class IdlGrammar
extends java.lang.Object

Cette classe represente la grammaire IDL

Version:
  $Revision: 1.9 $ $Date: 2002/08/21 08:19:24 $
Author:
  Jerome Daniel

Field Summary
`IdlParser` `parser` Permet d'acceder au parser pour parcourir le fichier IDL

Constructor Summary
`IdlGrammar(IdlParser p)` Construit une nouvelle class pour la gestion de la grammaire IDL

Method Summary
`void` `addNativeMap(IdlObject current)` Respond to #pragma javaNativeMap
`void` `attr_dcl(IdlObject obj)` (70) Analyse la definition d'un attribut
`void` `changeId(IdlObject current)` Change l'ID d'un objet CORBA
`void` `changePackage()` Change le prefixe des IDs des objets CORBA
`void` `changePrefix()` Change le prefixe des IDs des objets CORBA
`void` `changeVersion(IdlObject current)` Change la version d'un ID d'un objet CORBA
`boolean` `checkPrefix(java.lang.String pref)` Check the pragma prefix string.
`void` `const_dcl(IdlObject obj)` (12) Analyse la definition d'une constante <const> ::= 'const' <const_type> <identifier> '=' <const_exp>
`long` `const_exp(StringContainer str, IdlObject obj, DoubleContainer fv)` (14) Analyse une expression constante
`void` `const_type(IdlObject obj)` (13) Analyse un type de constante
`void` `constr_type_spec(IdlObject obj)` (33) Ananlyse un type de donnee construit
`void` `context_expr(IdlOp obj)` (79) Analyse l'expression "context" d'une operation
`void` `convertToDecimal()` Cette fonction convertie un nombre hexadecimal en nombre decimal Le nombre est stocke dans ctx.value sous forme d'une chaine.
`void` `declarators(IdlObject obj)` (34) Analyse une declaration de membre
`void` `echo()` Change le prefixe des IDs des objets CORBA
`void` `enum_dcl(IdlObject obj)` (63) Analyse une enumeration
`void` `except_dcl(IdlObject obj)` (71) Analyse la definition d'une exception
`void` `export_dcl(IdlObject obj)` (9) Analyse les membres d'une interface
`IdlObject` `final_type(IdlObject obj)` Returns the final definition of a data type
`void` `fixed_const_dcl(IdlObject obj)` (82) Analyse la definition d'un type fixed constant
`void` `fixed_dcl(IdlObject obj)` (82) Analyse la definition d'un type fixed
`void` `forward_dcl(IdlInterface obj)` (6) Analyse une definition forward d'une interface
`void` `full_value_dcl(IdlObject obj)`
`java.lang.String` `fullname(IdlObject obj)` Retourne le nom complet d'un objet CORBA
`int` `hexaToDec(char hexa)` Cette fonction retourne la valeur decimale d'un symbole hexadecimal
`void` `idl_definition(IdlObject obj)` (1) Analyse une definition IDL <definition> ::= <type_dcl> ';' | <const_dcl> ';' | <except_dcl> ';' | <interface_dcl> ';' | <module_dcl> ';'
`void` `idl_specification(IdlObject obj)` Premiere regle de la grammaire
`void` `import_dcl(IdlObject obj)` Include external description
`void` `inheritance_spec(IdlInterface obj)` (10) Analyse les declarations d'heritages d'une interface
`void` `init_dcl(IdlObject obj)`
`void` `init_param_decls(IdlObject obj)`
`void` `interface_body(IdlInterface obj)` (8) Analyse le corps d'une interface
`void` `interface_dcl(IdlInterface obj)` (5) Analyse la declaration d'une interface
`void` `interface_type(IdlObject obj)` (4) Analyse la definition d'une interface
`java.lang.String` `inversedPrefix(java.lang.String prefix)` Inverse l'ordre d'un prefixe : omg.org -> org.omg
`void` `member_list(IdlObject obj)` (55) Analyse les membres d'une structure
`void` `member(IdlObject obj, java.util.Hashtable list)` (56) Analyse un membre d'une structure
`void` `module_dcl(IdlObject obj)` (3) Analyse un module
`void` `native_dcl(IdlObject obj)` Analyse la definition d'un type natif
`void` `op_dcl(IdlObject obj)` (72) Analyse la definition d'une operation
`void` `op_type_spec(IdlOp obj)` (74) Analyse le type de retour d'une operation
`void` `param_attribute(IdlParam obj)` (77) Analyse l'attribut d'un parametre
`void` `param_dcl(IdlOp obj)` (76) Analyse la definition d'un parametre d'une operation
`void` `param_type_spec(IdlObject obj)` (80) Analyse le type d'un parametre
`void` `parameter_dcls(IdlOp obj)` (75) Analyse les parametres d'une operation
`int` `positive_int_const(IdlObject obj)` (26) Analyse une expression entiere constante
`void` `pragma_dcl(IdlObject obj)` Analyse les clauses pragma
`long` `primary_exp(StringContainer str, IdlObject obj, DoubleContainer fv)` (23) Analyse une expression constante
`void` `raises_expr(IdlObject obj)` (78) Analyse l'expression "raises" d'une operation
`java.lang.String` `scoped_name()` (11) Analyse un nom eventuellement compose
`void` `sequence_dcl(IdlObject obj)` (65) Analyse la definition d'une sequence
`void` `simple_type_spec(IdlObject obj)` (30) Analyse un type de donnee simple
`void` `state_member_dcl(IdlObject obj)`
`void` `string_dcl(IdlObject obj)` (66) Analyse la definition d'une chaine de caracteres
`void` `struct_dcl(IdlObject obj)` (54) Analyse la definition d'une structure
`void` `switch_body(IdlObject obj)` (59) Analyse le contenu d'une union
`int` `switch_case(IdlObject obj, BooleanContainer asNext, java.util.Hashtable list)` (60) Analyse un des cas d'une union
`void` `switch_type_spec(IdlObject obj)` (58) Analyse un type de donnee de discriminant d'union
`void` `type_dcl(IdlObject obj)` (27) Analyse la definition d'un nouveau type de donnee
`void` `type_id_dcl(IdlObject obj)` Set a repository ID
`void` `type_prefix_dcl(IdlObject obj)` Set repository IDs prefix
`void` `type_spec(IdlObject obj)` (29) Ananlyse un type de donnee
`long` `unary_exp(StringContainer str, IdlObject obj, DoubleContainer fv)` (22) Ananlyse une expression constante
`void` `union_dcl(IdlObject obj)` (57) Analyse la definition d'une union
`void` `value_abs_dcl(IdlObject obj, java.lang.String name)`
`void` `value_box_dcl(IdlObject obj, java.lang.String name)`
`void` `value_dcl(IdlObject obj, java.lang.String name, boolean custom)`
`void` `value_forward_dcl(IdlObject obj, java.lang.String name, boolean abstract_value)`
`void` `value_inheritance_spec(IdlObject obj, boolean custom, boolean statefull)`
`void` `value_inheritance(IdlObject obj, boolean custom, boolean statefull)`
`void` `wstring_dcl(IdlObject obj)` (67) Analyse la definition d'une chaine de caracteres larges

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### parser

    public IdlParser parser

  Permet d'acceder au parser pour parcourir le fichier IDL

Constructor Detail

### IdlGrammar

    public IdlGrammar(IdlParser p)

  Construit une nouvelle class pour la gestion de la grammaire IDL

Method Detail

### hexaToDec

    public int hexaToDec(char hexa)

  Cette fonction retourne la valeur decimale d'un symbole hexadecimal
  Parameters:
    `hexa` - le symbole hexadecimal
  Returns:
    la valeur decimale correspondante

### convertToDecimal

    public void convertToDecimal()

  Cette fonction convertie un nombre hexadecimal en nombre decimal Le nombre est stocke dans ctx.value sous forme d'une chaine.

### inversedPrefix

    public java.lang.String inversedPrefix(java.lang.String prefix)

  Inverse l'ordre d'un prefixe : omg.org -> org.omg
  Parameters:
    `prefix` - le prefixe a inverser
  Returns:
    le prefixe inverse

### fullname

    public java.lang.String fullname(IdlObject obj)

  Retourne le nom complet d'un objet CORBA
  Parameters:
    `obj` - l'objet dont on doit trouver le nom complet
  Returns:
    le nom complet

### scoped_name

    public java.lang.String scoped_name()

  (11) Analyse un nom eventuellement compose

### primary_exp

    public long primary_exp(StringContainer str,
                            IdlObject obj,
                            DoubleContainer fv)

  (23) Analyse une expression constante

### unary_exp

    public long unary_exp(StringContainer str,
                          IdlObject obj,
                          DoubleContainer fv)

  (22) Ananlyse une expression constante

### const_exp

    public long const_exp(StringContainer str,
                          IdlObject obj,
                          DoubleContainer fv)

  (14) Analyse une expression constante

### positive_int_const

    public int positive_int_const(IdlObject obj)

  (26) Analyse une expression entiere constante

### fixed_dcl

    public void fixed_dcl(IdlObject obj)

  (82) Analyse la definition d'un type fixed

### fixed_const_dcl

    public void fixed_const_dcl(IdlObject obj)

  (82) Analyse la definition d'un type fixed constant

### wstring_dcl

    public void wstring_dcl(IdlObject obj)

  (67) Analyse la definition d'une chaine de caracteres larges

### string_dcl

    public void string_dcl(IdlObject obj)

  (66) Analyse la definition d'une chaine de caracteres

### sequence_dcl

    public void sequence_dcl(IdlObject obj)

  (65) Analyse la definition d'une sequence

### const_type

    public void const_type(IdlObject obj)

  (13) Analyse un type de constante

### const_dcl

    public void const_dcl(IdlObject obj)

  (12) Analyse la definition d'une constante <const> ::= 'const' <const_type> <identifier> '=' <const_exp>

### constr_type_spec

    public void constr_type_spec(IdlObject obj)

  (33) Ananlyse un type de donnee construit

### simple_type_spec

    public void simple_type_spec(IdlObject obj)

  (30) Analyse un type de donnee simple

### type_spec

    public void type_spec(IdlObject obj)

  (29) Ananlyse un type de donnee

### declarators

    public void declarators(IdlObject obj)

  (34) Analyse une declaration de membre

### member

    public void member(IdlObject obj,
                       java.util.Hashtable list)

  (56) Analyse un membre d'une structure

### member_list

    public void member_list(IdlObject obj)

  (55) Analyse les membres d'une structure

### struct_dcl

    public void struct_dcl(IdlObject obj)

  (54) Analyse la definition d'une structure

### switch_type_spec

    public void switch_type_spec(IdlObject obj)

  (58) Analyse un type de donnee de discriminant d'union

### switch_case

    public int switch_case(IdlObject obj,
                           BooleanContainer asNext,
                           java.util.Hashtable list)

  (60) Analyse un des cas d'une union

### switch_body

    public void switch_body(IdlObject obj)

  (59) Analyse le contenu d'une union

### union_dcl

    public void union_dcl(IdlObject obj)

  (57) Analyse la definition d'une union

### enum_dcl

    public void enum_dcl(IdlObject obj)

  (63) Analyse une enumeration

### type_dcl

    public void type_dcl(IdlObject obj)

  (27) Analyse la definition d'un nouveau type de donnee

### except_dcl

    public void except_dcl(IdlObject obj)

  (71) Analyse la definition d'une exception

### module_dcl

    public void module_dcl(IdlObject obj)

  (3) Analyse un module

### final_type

    public IdlObject final_type(IdlObject obj)

  Returns the final definition of a data type
  Parameters:
    `obj` - the object
  Returns:
    the final definition

### param_type_spec

    public void param_type_spec(IdlObject obj)

  (80) Analyse le type d'un parametre

### attr_dcl

    public void attr_dcl(IdlObject obj)

  (70) Analyse la definition d'un attribut

### op_type_spec

    public void op_type_spec(IdlOp obj)

  (74) Analyse le type de retour d'une operation

### param_attribute

    public void param_attribute(IdlParam obj)

  (77) Analyse l'attribut d'un parametre

### param_dcl

    public void param_dcl(IdlOp obj)

  (76) Analyse la definition d'un parametre d'une operation

### parameter_dcls

    public void parameter_dcls(IdlOp obj)

  (75) Analyse les parametres d'une operation

### raises_expr

    public void raises_expr(IdlObject obj)

  (78) Analyse l'expression "raises" d'une operation

### context_expr

    public void context_expr(IdlOp obj)

  (79) Analyse l'expression "context" d'une operation

### op_dcl

    public void op_dcl(IdlObject obj)

  (72) Analyse la definition d'une operation

### export_dcl

    public void export_dcl(IdlObject obj)

  (9) Analyse les membres d'une interface

### interface_body

    public void interface_body(IdlInterface obj)

  (8) Analyse le corps d'une interface

### inheritance_spec

    public void inheritance_spec(IdlInterface obj)

  (10) Analyse les declarations d'heritages d'une interface

### interface_dcl

    public void interface_dcl(IdlInterface obj)

  (5) Analyse la declaration d'une interface

### forward_dcl

    public void forward_dcl(IdlInterface obj)

  (6) Analyse une definition forward d'une interface

### interface_type

    public void interface_type(IdlObject obj)

  (4) Analyse la definition d'une interface

### native_dcl

    public void native_dcl(IdlObject obj)

  Analyse la definition d'un type natif

### value_forward_dcl

    public void value_forward_dcl(IdlObject obj,
                                  java.lang.String name,
                                  boolean abstract_value)

### value_box_dcl

    public void value_box_dcl(IdlObject obj,
                              java.lang.String name)

### value_inheritance

    public void value_inheritance(IdlObject obj,
                                  boolean custom,
                                  boolean statefull)

### value_inheritance_spec

    public void value_inheritance_spec(IdlObject obj,
                                       boolean custom,
                                       boolean statefull)

### value_abs_dcl

    public void value_abs_dcl(IdlObject obj,
                              java.lang.String name)

### state_member_dcl

    public void state_member_dcl(IdlObject obj)

### init_param_decls

    public void init_param_decls(IdlObject obj)

### init_dcl

    public void init_dcl(IdlObject obj)

### value_dcl

    public void value_dcl(IdlObject obj,
                          java.lang.String name,
                          boolean custom)

### full_value_dcl

    public void full_value_dcl(IdlObject obj)

### changeId

    public void changeId(IdlObject current)

  Change l'ID d'un objet CORBA

### changeVersion

    public void changeVersion(IdlObject current)

  Change la version d'un ID d'un objet CORBA

### changePrefix

    public void changePrefix()

  Change le prefixe des IDs des objets CORBA

### checkPrefix

    public boolean checkPrefix(java.lang.String pref)

  Check the pragma prefix string. Any occurence of the ':' and the '/' character is illegal. From CORBA 2.4.2, 10.6.1 The second component is a list of identifiers, separated by '/' characters. These identifiers are arbitrarily long sequences of alphabetic, digit, underscore ('_'), hyphen ('-'), and period ('.') characters. Typically, the first identifier is a unique prefix, and the rest are the OMG IDL Identifiers that make up the scoped name of the definition. Added by Olivier Modica, 4/11/2001

### echo

    public void echo()

  Change le prefixe des IDs des objets CORBA

### changePackage

    public void changePackage()

  Change le prefixe des IDs des objets CORBA

### addNativeMap

    public void addNativeMap(IdlObject current)

  Respond to #pragma javaNativeMap

### pragma_dcl

    public void pragma_dcl(IdlObject obj)

  Analyse les clauses pragma

### type_id_dcl

    public void type_id_dcl(IdlObject obj)

  Set a repository ID

### type_prefix_dcl

    public void type_prefix_dcl(IdlObject obj)

  Set repository IDs prefix

### idl_definition

    public void idl_definition(IdlObject obj)

  (1) Analyse une definition IDL <definition> ::= <type_dcl> ';' | <const_dcl> ';' | <except_dcl> ';' | <interface_dcl> ';' | <module_dcl> ';'

### import_dcl

    public void import_dcl(IdlObject obj)

  Include external description

### idl_specification

    public void idl_specification(IdlObject obj)

  Premiere regle de la grammaire
  Parameters:
    `obj` - objet a partir duquel la compilation s'effectue