/[geocaml]/geocaml/src/parser.mly
ViewVC logotype

Diff of /geocaml/src/parser.mly

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.5 by gmariano, Sun Sep 7 14:53:34 2003 UTC revision 1.6 by adoniec, Wed Sep 10 15:37:58 2003 UTC
# Line 12  open Abrlex Line 12  open Abrlex
12  %token NORME  %token NORME
13  %token CROCHET_OUV CROCHET_FER  %token CROCHET_OUV CROCHET_FER
14  %token PARENT_OUV PARENT_FER  %token PARENT_OUV PARENT_FER
15  %token DE  %token DE EN
16  %token POINT DROITE CERCLE SEGMENT  %token POINT DROITE CERCLE SEGMENT
17  %token QUELCONQUE  %token QUELCONQUE
18  %token LONGUEUR  %token LONGUEUR
# Line 20  open Abrlex Line 20  open Abrlex
20  %token MILIEU MEDIATRICE BISSECTRICE  %token MILIEU MEDIATRICE BISSECTRICE
21  %token PERPENDICULAIRE PARALLELE  %token PERPENDICULAIRE PARALLELE
22  %token ET A  %token ET A
23    %token ROUGE VERT BLEU NOIR
24  %token CENTRE PASSANT PAR  %token CENTRE PASSANT PAR
25  %token <string> IDENTIFIANT  %token <string> IDENTIFIANT
26  %token <string> IDENTIFIANT2  %token <string> IDENTIFIANT2
# Line 39  suppression: Line 40  suppression:
40  | EFFACE identification_line EOL { suppr $2 }  | EFFACE identification_line EOL { suppr $2 }
41    
42  declaration:  declaration:
43    SOIT declaration_point EOL { $2 }    SOIT declaration_point EOL { ($2 Graphics.red) }
44  | SLASH SOIT declaration_point EOL { CONSTRUCT $3 }  | SOIT declaration_point couleur EOL { ($2 $3) }
45  | SOIT declaration_line EOL { $2 }  | SLASH SOIT declaration_point EOL { CONSTRUCT ($3 Graphics.transp) }
46  | SLASH SOIT declaration_line EOL { CONSTRUCT $3 }  | SOIT declaration_line EOL { ($2 Graphics.black) }
47  | SOIT declaration_line2 EOL { $2 }  | SOIT declaration_line couleur EOL { ($2 $3)}
48  | SLASH SOIT declaration_line2 EOL { CONSTRUCT $3 }  | SLASH SOIT declaration_line EOL { CONSTRUCT ($3 Graphics.transp)}
49  | SOIT declaration_circle EOL { $2 }  | SOIT declaration_line2 EOL { ($2 Graphics.black) }
50  | SLASH SOIT declaration_circle EOL { CONSTRUCT $3 }  | SOIT declaration_line2 couleur EOL { ($2 $3) }
51  ;  | SLASH SOIT declaration_line2 EOL { CONSTRUCT ($3 Graphics.transp)}
52    | SOIT declaration_circle EOL { ($2 Graphics.black) }
53    | SOIT declaration_circle couleur EOL { ($2 $3) }
54    | SLASH SOIT declaration_circle EOL { CONSTRUCT ($3 Graphics.transp)}
55    ;
56    
57    couleur:
58      PARENT_OUV EN ROUGE PARENT_FER {Graphics.red}
59    | PARENT_OUV EN VERT PARENT_FER {Graphics.green}
60    | PARENT_OUV EN BLEU PARENT_FER {Graphics.blue}
61    | PARENT_OUV EN NOIR PARENT_FER {Graphics.black}
62    
63  declaration_point:  declaration_point:
64    IDENTIFIANT UN POINT { point $1 }    IDENTIFIANT UN POINT { point $1}
65  | IDENTIFIANT UN POINT QUELCONQUE { point $1 }  | IDENTIFIANT UN POINT QUELCONQUE { point $1}
66  | IDENTIFIANT UN POINT DE IDENTIFIANT { point_on $1 $5 }  | IDENTIFIANT UN POINT DE IDENTIFIANT { point_on $1 $5}
67  | IDENTIFIANT LE MILIEU DE IDENTIFIANT { middle2 $1 $5 }  | IDENTIFIANT LE MILIEU DE IDENTIFIANT { middle2 $1 $5}
68  | IDENTIFIANT LE MILIEU DE IDENTIFIANT ET IDENTIFIANT { middle $1 $5 $7 }  | IDENTIFIANT LE MILIEU DE IDENTIFIANT ET IDENTIFIANT { middle $1 $5 $7}
69  | IDENTIFIANT INTERSECTION DE identification_line ET identification_line  | IDENTIFIANT INTERSECTION DE identification_line ET identification_line
70          { intersection $1 $4 $6 }          { intersection $1 $4 $6}
71  | IDENTIFIANT ET IDENTIFIANT INTERSECTION DE IDENTIFIANT ET IDENTIFIANT  | IDENTIFIANT ET IDENTIFIANT INTERSECTION DE IDENTIFIANT ET IDENTIFIANT
72          { double_intersection $1 $3 $6 $8 }          { double_intersection $1 $3 $6 $8}
73  | list_of_point NUM POINT  | list_of_point NUM POINT
74          { if (List.length $1)==$2          { if (List.length $1)==$2
75                  then MULTIPLE $1                  then multiple_point $1
76                  else raise (Wrong_number_declaration ($2,"points"))                  else raise (Wrong_number_declaration ($2,"points"))
77          }          }
78  | list_of_point NUM POINT QUELCONQUE  | list_of_point NUM POINT QUELCONQUE
79          { if (List.length $1)==$2          { if (List.length $1)==$2
80                  then MULTIPLE $1                  then multiple_point $1
81                  else raise (Wrong_number_declaration ($2,"points"))                  else raise (Wrong_number_declaration ($2,"points"))
82          }          }
83  ;  ;
# Line 78  list_of_point: Line 89  list_of_point:
89    
90  declaration_line:  declaration_line:
91  | IDENTIFIANT UNE DROITE QUELCONQUE  | IDENTIFIANT UNE DROITE QUELCONQUE
92          { any_line $1 }          { any_line $1}
93  | IDENTIFIANT LA DROITE PASSANT PAR IDENTIFIANT ET IDENTIFIANT  | IDENTIFIANT LA DROITE PASSANT PAR IDENTIFIANT ET IDENTIFIANT
94          { line $1 $6 $8 }          { line $1 $6 $8}
95  | IDENTIFIANT LE SEGMENT PASSANT PAR IDENTIFIANT ET IDENTIFIANT  | IDENTIFIANT LE SEGMENT PASSANT PAR IDENTIFIANT ET IDENTIFIANT
96          { segment $1 $6 $8 }          { segment $1 $6 $8}
97  | IDENTIFIANT LA DROITE PARALLELE A identification_line PASSANT PAR IDENTIFIANT  | IDENTIFIANT LA DROITE PARALLELE A identification_line PASSANT PAR IDENTIFIANT
98          { parallel $1 $6 $9 }          { parallel $1 $6 $9}
99  | IDENTIFIANT LE SEGMENT PARALLELE A identification_line PASSANT PAR IDENTIFIANT ET DE LONGUEUR NORME IDENTIFIANT VIRGULE IDENTIFIANT NORME  | IDENTIFIANT LE SEGMENT PARALLELE A identification_line PASSANT PAR IDENTIFIANT ET DE LONGUEUR NORME IDENTIFIANT VIRGULE IDENTIFIANT NORME
100          { parallel_seg $1 $6 $9 $14 $16 }          { parallel_seg $1 $6 $9 $14 $16}
101  | IDENTIFIANT LA DROITE PERPENDICULAIRE A identification_line PASSANT PAR IDENTIFIANT  | IDENTIFIANT LA DROITE PERPENDICULAIRE A identification_line PASSANT PAR IDENTIFIANT
102          { perpendicular $1 $6 $9 }          { perpendicular $1 $6 $9}
103  | IDENTIFIANT LE SEGMENT PERPENDICULAIRE A identification_line PASSANT PAR IDENTIFIANT ET DE LONGUEUR NORME IDENTIFIANT VIRGULE IDENTIFIANT NORME  | IDENTIFIANT LE SEGMENT PERPENDICULAIRE A identification_line PASSANT PAR IDENTIFIANT ET DE LONGUEUR NORME IDENTIFIANT VIRGULE IDENTIFIANT NORME
104          { perpendicular_seg $1 $6 $9 $14 $16 }          { perpendicular_seg $1 $6 $9 $14 $16}
105  | IDENTIFIANT LA MEDIATRICE DE identification_line  | IDENTIFIANT LA MEDIATRICE DE identification_line
106          { perpendicular_bissector $1 $5 }          { perpendicular_bissector $1 $5}
107  | IDENTIFIANT LA BISSECTRICE DE IDENTIFIANT VIRGULE IDENTIFIANT VIRGULE IDENTIFIANT  | IDENTIFIANT LA BISSECTRICE DE IDENTIFIANT VIRGULE IDENTIFIANT VIRGULE IDENTIFIANT
108          { bissecting $1 $5 $7 $9 }          { bissecting $1 $5 $7 $9}
109  ;  ;
110    
111  declaration_line2:  declaration_line2:
112  | LA DROITE PARENT_OUV IDENTIFIANT VIRGULE IDENTIFIANT PARENT_FER  | LA DROITE PARENT_OUV IDENTIFIANT VIRGULE IDENTIFIANT PARENT_FER
113          { line ("("^$4^","^$6^")") $4 $6 }          { line ("("^$4^","^$6^")") $4 $6}
114  | LA DROITE PARENT_OUV IDENTIFIANT IDENTIFIANT PARENT_FER  | LA DROITE PARENT_OUV IDENTIFIANT IDENTIFIANT PARENT_FER
115          { line ("("^$4^","^$5^")") $4 $5 }          { line ("("^$4^","^$5^")") $4 $5}
116  | LE SEGMENT CROCHET_OUV IDENTIFIANT VIRGULE IDENTIFIANT CROCHET_FER  | LE SEGMENT CROCHET_OUV IDENTIFIANT VIRGULE IDENTIFIANT CROCHET_FER
117          { segment ("["^$4^","^$6^"]") $4 $6 }          { segment ("["^$4^","^$6^"]") $4 $6}
118  | LE SEGMENT CROCHET_OUV IDENTIFIANT  IDENTIFIANT CROCHET_FER  | LE SEGMENT CROCHET_OUV IDENTIFIANT  IDENTIFIANT CROCHET_FER
119          { segment ("["^$4^","^$5^"]") $4 $5 }          { segment ("["^$4^","^$5^"]") $4 $5}
120  ;  ;
121    
122  identification_line:  identification_line:
# Line 121  identification_line: Line 132  identification_line:
132  ;  ;
133    
134  declaration_circle:  declaration_circle:
135  IDENTIFIANT LE CERCLE DE CENTRE IDENTIFIANT PASSANT PAR IDENTIFIANT { circle $1 $6 $9 }  IDENTIFIANT LE CERCLE DE CENTRE IDENTIFIANT PASSANT PAR IDENTIFIANT { circle $1 $6 $9}
136    
137    
138    

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.6

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26