From 6a8d740f98d798d6677a6019393d47ce05497c12 Mon Sep 17 00:00:00 2001 From: Steven de Oliveira Date: Mon, 19 Jan 2026 16:25:28 +0100 Subject: [PATCH 1/2] =?UTF-8?q?R=C3=A9paration=20optToNum?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/mlang/test_framework/test_interpreter.ml | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/src/mlang/test_framework/test_interpreter.ml b/src/mlang/test_framework/test_interpreter.ml index 8a57baa23..a5e61b22b 100644 --- a/src/mlang/test_framework/test_interpreter.ml +++ b/src/mlang/test_framework/test_interpreter.ml @@ -78,8 +78,8 @@ let to_MIR_function_and_inputs (program : Mir.program) (t : Irj_ast.irj_file) : in let toNum p = Com.Numeric (Com.Float (float p)) in let optToNum = function - | Some p -> Com.Numeric (Com.Float (float p)) - | None -> Com.Numeric Com.Undefined + | Some p -> Com.(Numeric (Float (float p))) + | None -> Com.(Numeric (Float 0.)) in let toEvent (rappel : Irj_ast.rappel) = StrMap.empty @@ -100,12 +100,7 @@ let to_MIR_function_and_inputs (program : Mir.program) (t : Irj_ast.irj_file) : in let expVars vars_init = let fold res (Pos.Mark (var, _), Pos.Mark (value, _)) = - let fVal = - match value with - | Irj_ast.I i -> Com.Float (float i) - | Irj_ast.F f -> Com.Float f - | Irj_ast.U -> Com.Undefined - in + let fVal = irj_lit_to_com_lit value in StrMap.add var fVal res in List.fold_left fold StrMap.empty vars_init From c9ec53643919cfc53fca946fe6428cf9eaa0c0fc Mon Sep 17 00:00:00 2001 From: Steven de Oliveira Date: Tue, 20 Jan 2026 10:51:01 +0100 Subject: [PATCH 2/2] =?UTF-8?q?Pas=20de=20valeur=20de=20sortie=20en=20irj?= =?UTF-8?q?=20veut=20dire=20=C3=A9gal=20=C3=A0=200?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/mlang/test_framework/irj_lexer.mll | 3 +++ src/mlang/test_framework/irj_parser.mly | 5 ++++- tests/cram/ok/arithmetique.t/deux_indef.irj | 6 +++--- tests/cram/ok/arithmetique.t/div_x_0.irj | 2 +- 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/mlang/test_framework/irj_lexer.mll b/src/mlang/test_framework/irj_lexer.mll index 7b38b121f..390c2a80c 100644 --- a/src/mlang/test_framework/irj_lexer.mll +++ b/src/mlang/test_framework/irj_lexer.mll @@ -84,6 +84,9 @@ rule token = parse { FLOAT (float_of_string f) } (* DONT KEEP THAT *) (* Probably in order to write a specific function for our number format *) +| "indefini" + { UNDEFINED } + | ['a'-'z' 'A'-'Z' '0'-'9' '_']+ as s { SYMBOL s } diff --git a/src/mlang/test_framework/irj_parser.mly b/src/mlang/test_framework/irj_parser.mly index e37ca2479..234611896 100644 --- a/src/mlang/test_framework/irj_parser.mly +++ b/src/mlang/test_framework/irj_parser.mly @@ -24,6 +24,8 @@ %token SYMBOL NAME %token INTEGER %token FLOAT +%token UNDEFINED +/* The undefined value */ %token SLASH /* Used as field separator */ @@ -107,7 +109,7 @@ rappels: variable_and_value: | var = SYMBOL SLASH value = value NL { (Pos.mark var (mk_position $loc(var)), Pos.mark value (mk_position $loc(value))) } -| var = SYMBOL SLASH? NL { (Pos.mark var (mk_position $loc(var)), Pos.without U) } +| var = SYMBOL SLASH? NL { (Pos.mark var (mk_position $loc(var)), Pos.mark (I 0) (mk_position $loc(var))) } calc_error: | error = SYMBOL NL { Pos.mark error (mk_position $sloc) } @@ -153,3 +155,4 @@ integer: value: | i = INTEGER { I (i) } | f = FLOAT { F (f) } +| UNDEFINED { U } diff --git a/tests/cram/ok/arithmetique.t/deux_indef.irj b/tests/cram/ok/arithmetique.t/deux_indef.irj index 5e6910ed5..a410d7d00 100644 --- a/tests/cram/ok/arithmetique.t/deux_indef.irj +++ b/tests/cram/ok/arithmetique.t/deux_indef.irj @@ -1,11 +1,11 @@ #NOM INDEF-INDEF #ENTREES-PRIMITIF -X/ -Y/ +X/indefini +Y/indefini #CONTROLES-PRIMITIF #RESULTATS-PRIMITIF -Z/ +Z/indefini #ENTREES-CORRECTIF #CONTROLES-CORRECTIF #RESULTATS-CORRECTIF diff --git a/tests/cram/ok/arithmetique.t/div_x_0.irj b/tests/cram/ok/arithmetique.t/div_x_0.irj index b1299fc30..9cd112915 100644 --- a/tests/cram/ok/arithmetique.t/div_x_0.irj +++ b/tests/cram/ok/arithmetique.t/div_x_0.irj @@ -5,7 +5,7 @@ X/1 Y/0 #CONTROLES-PRIMITIF #RESULTATS-PRIMITIF -Z/ +Z/indefini #ENTREES-CORRECTIF #CONTROLES-CORRECTIF #RESULTATS-CORRECTIF