This repository has been archived on 2024-01-18. You can view files and clone it, but cannot push or open issues or pull requests.
compilation/cours/cours-02/parser.mly
Adrien Guatto abf23ab803 Cours 02
2023-09-27 18:49:08 +02:00

33 lines
433 B
OCaml

%{
(* Prelude *)
open Ast
%}
(* Zone des déclarations *)
%token EOF PLUS STAR
%token<int> INT
%start<Ast.e> phrase
%%
(* Cette grammaire a un conflit avancer-réduire. Comment le régler ? *)
(* Ici on écrit les règles de grammaire. *)
phrase: e=expression EOF
{
e
}
expression: x=INT
{
EInt x
}
| lhs=expression PLUS rhs=expression
{
EPlus (lhs, rhs)
}
| lhs=expression STAR rhs=expression
{
EMult (lhs, rhs)
}