%{ (** * parser.mly * ColorML_v2 project * (C) Lilian Besson, 2014 *) open Types;; %} /* Les token */ %token RIEN_DE_SPECIAL %token CHAINE_DE_CARACTERES %token COMMENTAIRE_SIMPLE %token COMMENTAIRE_ODOC %token PREPROCESSEUR %token CONSTANTES_SPECD %token CONSTANTES_SPECG %token CONSTANTES_SPEC %token CONSTANTES %token TYPES_DE_BASES_SPEC %token STATEMENT_SPEC %token STATEMENT2_SPEC %token NOMBRES_SPEC %token OPERATEURS_SPEC %token PARENTHESES_SPEC %token MODULES_STANDARDS_SPEC %token EXCEPTION_ET_MODULES_SPEC %token MOT_CLES_FUNCTION_LIKE_SPEC %token TYPES_DE_BASES %token STATEMENT %token STATEMENT2 %token NOMBRES %token OPERATEURS %token PARENTHESES %token MODULES_STANDARDS %token EXCEPTION_ET_MODULES %token MOT_CLES_FUNCTION_LIKE %token ESPACE %token TABULATION %token NOUVELLE_LIGNE %token EOF /* Les priorités des token */ %left RIEN_DE_SPECIAL %left CHAINE_DE_CARACTERES //%left COMMENTAIRE_ODOC //%left COMMENTAIRE_SIMPLE //%nonassoc ESPACE TABULATION NOUVELLE_LIGNE EOF %type texte_complet %start texte_complet %% espaces: | ESPACE { Espace_blanc ( Espace ( $1 ) ) } | TABULATION { Espace_blanc ( Tabulation ( $1 ) ) } | NOUVELLE_LIGNE { Espace_blanc ( Nouvelle_ligne ( $1 ) ) } ; entites: | RIEN_DE_SPECIAL { Rien_de_special ( $1 ) } | COMMENTAIRE_SIMPLE { Commentaire_simple ( $1 ) } | COMMENTAIRE_ODOC { Commentaire_odoc ( $1 ) } | PREPROCESSEUR { Preprocesseur ( $1 ) } | CHAINE_DE_CARACTERES { Chaine_de_caracteres ( $1 ) } | CONSTANTES_SPECG { Constantes_specg ( $1 ) } | CONSTANTES_SPECD { Constantes_specd ( $1 ) } | CONSTANTES_SPEC { Constantes_spec ( $1 ) } | CONSTANTES { Constantes ( $1 ) } | TYPES_DE_BASES_SPEC { Types_de_bases ( $1 ) } | STATEMENT_SPEC { Statement ( $1 ) } | STATEMENT2_SPEC { Statement2 ( $1 ) } | NOMBRES_SPEC { Nombres ( $1 ) } | OPERATEURS_SPEC { Operateurs ( $1 ) } | PARENTHESES_SPEC { Parentheses ( $1 ) } | MODULES_STANDARDS_SPEC { Modules_standards ( $1 ) } | EXCEPTION_ET_MODULES_SPEC { Exception_et_modules ( $1 ) } | MOT_CLES_FUNCTION_LIKE_SPEC { Mot_cles_function_like ( $1 ) } | TYPES_DE_BASES { Types_de_bases ( $1 ) } | STATEMENT { Statement ( $1 ) } | STATEMENT2 { Statement2 ( $1 ) } | NOMBRES { Nombres ( $1 ) } | OPERATEURS { Operateurs ( $1 ) } | PARENTHESES { Parentheses ( $1 ) } | MODULES_STANDARDS { Modules_standards ( $1 ) } | EXCEPTION_ET_MODULES { Exception_et_modules ( $1 ) } | MOT_CLES_FUNCTION_LIKE { Mot_cles_function_like ( $1 ) } ; item: | entites { $1 } | espaces { $1 } ; texte_complet: | item texte_complet { [$1] @ $2 } // | item { [$1] } | { [] } ; %%