X-Git-Url: https://scm.cri.ensmp.fr/git/Faustine.git/blobdiff_plain/50baab1849bddf73ee88b54f52b28060de1ce289..02c1ef905d2101df872ccccccb2e4c7c0a508571:/interpreter/nstparser.mly diff --git a/interpreter/nstparser.mly b/interpreter/nstparser.mly new file mode 100644 index 0000000..fadf9f6 --- /dev/null +++ b/interpreter/nstparser.mly @@ -0,0 +1,24 @@ +%{ + open Types +%} + +%token CONST +%token LPAR RPAR EOF POINT COMMA +%right COMMA +%left POINT +%start main +%type main +%% +main: nest EOF { $1 }; + +scalar: CONST { Scalar(float_of_string $1) } + | CONST POINT { Scalar(float_of_string $1) } + | CONST POINT CONST { Scalar(float_of_string ($1 ^ "." ^ $3)) }; + +vector: LPAR nestpar RPAR { Vector($2) }; + +nestpar: nest { Unary($1) } + | nest COMMA nestpar { Binary($1,$3) }; + +nest: scalar { $1 } + | vector { $1 };