From 319c1e4474f4fefde688720b78e8abf315513a32 Mon Sep 17 00:00:00 2001
From: Chimrod <>
Date: Wed, 25 Oct 2023 18:41:27 +0200
Subject: Now I have the API I want. Everything is abstract in the type
 S.Analyzer

---
 lib/qparser/analyzer.ml         |  1 -
 lib/qparser/parser.mly          | 15 +++++++--------
 lib/qparser/qsp_instruction.mly | 14 +++++++-------
 3 files changed, 14 insertions(+), 16 deletions(-)

(limited to 'lib/qparser')

diff --git a/lib/qparser/analyzer.ml b/lib/qparser/analyzer.ml
index 06960f6..58a117f 100644
--- a/lib/qparser/analyzer.ml
+++ b/lib/qparser/analyzer.ml
@@ -36,7 +36,6 @@ let parse :
     in
 
     evaluation
-    |> Result.map (fun e -> e [])
     |> Result.map_error (fun e ->
            let message =
              match e.IncrementalParser.code with
diff --git a/lib/qparser/parser.mly b/lib/qparser/parser.mly
index d84e534..81b630a 100644
--- a/lib/qparser/parser.mly
+++ b/lib/qparser/parser.mly
@@ -5,21 +5,20 @@
     type action_block =
         { loc : Qsp_syntax.S.pos
         ; expression : 
-          Analyzer.Expression.t' * Qsp_syntax.Report.t list 
-        ; body : Analyzer.Instruction.t Qsp_syntax.S.repr list
+          Analyzer.Expression.t'
+        ; body : Analyzer.Instruction.t list
         ; pos : Qsp_syntax.S.pos
         ; clauses : (
             ( (Analyzer.Instruction.expression, Analyzer.Instruction.t) Qsp_syntax.S.clause list 
-            * (Qsp_syntax.S.pos *Analyzer.Instruction.t Qsp_syntax.S.repr list) option
+            * (Qsp_syntax.S.pos * Analyzer.Instruction.t list) option
             ) option )
         }
 
     module Helper = Qsp_syntax.S.Helper(Analyzer.Expression)
-    module HelperI = Qsp_syntax.S.Helper(Analyzer.Instruction)
 %}
 
 %parameter<Analyzer: Qsp_syntax.S.Analyzer>
-%start <(Analyzer.Location.t * Qsp_syntax.Report.t list) Qsp_syntax.S.repr>main
+%start <(Analyzer.Location.t * Qsp_syntax.Report.t list)>main
 %on_error_reduce expression instruction unary_operator assignation_operator
 
 %% 
@@ -31,7 +30,7 @@ main:
       instructions = line_statement*
       LOCATION_END
     { 
-        let instructions = List.map instructions ~f:(HelperI.v) in
+        let instructions = List.map instructions ~f:(Analyzer.Instruction.v) in
         Analyzer.Location.location $loc instructions
     }
 
@@ -75,7 +74,7 @@ line_statement:
       END TOKEN?
       line_sep
       { 
-        let expression = Helper.v' e in
+        let expression = Analyzer.Expression.v e in
         let clauses = match b with
         | None -> None
         | Some (elifs, clauses) -> 
@@ -84,7 +83,7 @@ line_statement:
             | _ -> 
               List.map elifs
               ~f:(fun ((pos:Qsp_syntax.S.pos), e, instructions) -> 
-                let e = Helper.v' e in
+                let e = Analyzer.Expression.v e in
                 (pos, e, instructions)
               )
 
diff --git a/lib/qparser/qsp_instruction.mly b/lib/qparser/qsp_instruction.mly
index e8f5a77..b7d2558 100644
--- a/lib/qparser/qsp_instruction.mly
+++ b/lib/qparser/qsp_instruction.mly
@@ -18,7 +18,7 @@ argument(X):
 %public inline_action:
     | a = onliner(ACT)
       { let loc, label, statements, _, _ = a in 
-        let label = Helper.v' label in
+        let label = Analyzer.Expression.v label in
         Analyzer.Instruction.act loc ~label statements
       }
     | a = onliner(IF)
@@ -30,7 +30,7 @@ argument(X):
           | Some instructions -> Some ($loc(else_opt), [ instructions ]) in
         Analyzer.Instruction.if_
             loc 
-            (loc_s, Helper.v' expr, statements) 
+            (loc_s, Analyzer.Expression.v expr, statements) 
             ~elifs
             ~else_
       }
@@ -42,21 +42,21 @@ argument(X):
 
         Analyzer.Instruction.if_
             loc 
-            (loc_s, Helper.v' expr, statements) 
+            (loc_s, Analyzer.Expression.v expr, statements) 
             ~elifs
             ~else_
       }
 single_instruction:
     | expr = expression
     { 
-        let expr = Helper.v' expr in
+        let expr = Analyzer.Expression.v expr in
         Analyzer.Instruction.expression expr
     }
     | e = let_assignation   { e }
     | k = keyword
       args = argument(expression)
     {
-        let args = List.map args ~f:(Helper.v') in
+        let args = List.map args ~f:(Analyzer.Expression.v) in
         Analyzer.Instruction.call $loc k args
     }
 
@@ -69,8 +69,8 @@ let_assignation:
       op = assignation_operator
       value = expression 
     { 
-        let variable = Helper.variable' variable
-        and value = Helper.v' value in
+        let variable = Helper.variable variable
+        and value = Analyzer.Expression.v value in
 
         Analyzer.Instruction.assign $loc variable op value
     }
-- 
cgit v1.2.3