Skip to content
Snippets Groups Projects
  1. Aug 29, 2019
  2. Jun 21, 2017
    • erwan's avatar
      Better handling of real constants substraction. · 6e914d04
      erwan authored
      Indeed, expressions such as "3.0-42.5" caused a syntax error, as the unary minus
      of real constant was in hard in the lexer.  "3.0- 42.5" worked, but still.
      
      The problem then was that LicEvalConst refused to eval "- 3.14", that was
      parsed directly as a constant, and that is now a call to the unary minus.
      I've added specific code to handle this case.
      6e914d04
  3. Jul 06, 2015
    • Pascal Raymond's avatar
      Probleme des noeud parametrique definis dans un pack : · 03572aa0
      Pascal Raymond authored
      * la syntaxe est changee pour l'accepter
      * la stucture IdSolver (compil "lazy") contient maintenant
        "all_srcs" qui permet d'acceder si besoin a n'importe quelle info source,
        notamment les params statiques des noeuds identifies par "Pack::name"
      03572aa0
  4. Mar 03, 2015
  5. Feb 27, 2015
  6. Jan 20, 2015
  7. Apr 12, 2013
    • Erwan Jahier's avatar
      lus2lic is now working from ldbg and ltop. · fa71e77c
      Erwan Jahier authored
      As far as ldbg is concerned, it only traces the toplevel node, at
      call event.
      
      Note that I needed to rename quite a lot of modules to avoid name clashes
      between lus2lic.a and ltop.
      
      I've also merged the Verbose module with the one of Lutin so that
      they can be shared (there were sharing 95% already).
      fa71e77c
  8. Apr 04, 2013
    • Erwan Jahier's avatar
      The -exec mode now supports the merge statement. · 1ca66bc0
      Erwan Jahier authored
      In order to do that, I've generalised the type of merge : now the clock
      argument can be any expression. Some assert false still prevent its use,
      but it should be easy to get rid of them (I'll do that latter).
      1ca66bc0
  9. Apr 03, 2013
  10. Feb 07, 2013
  11. Feb 06, 2013
  12. Feb 01, 2013
  13. Jan 31, 2013
  14. Jan 11, 2013
  15. Dec 13, 2012
    • Erwan Jahier's avatar
      Documentation et renommage des modules. · 65dfa567
      Erwan Jahier authored
      nb: les tests ne passent toujours bien sur.
      
      * Partie lus -> AST
      
      predef.ml -> srcPredef.ml
      syntaxTreeCore.ml -> astCore.ml
      syntaxTree.ml     -> astV6.ml
      syntaxTreeDump.mli-> astV6Dump.mli
      
      * Partie Ast -> Ast
      
      solveIdent.mli -> astRecognizePredef.mli
      syntaxTab.mli -> astTab.mli
      symbolTab.mli -> astTabSymbol.mli
      
      * Partie  AST -> lic (static evaluation)
      
      eff.ml  -> lic.ml
      getEff.mli -> ast2lic.mli
      lazyCompiler.mli -> licTab.mli
      builtIn.ml -> licMetaOp.ml
      predefEval*.ml -> licEval*.ml
      name.mli -> licName.mli
      
      * Partie Lic -> Lic
      
      uniqueOutput.mli      -> l2lCheckOutputs.mli
      structArrayExpand.mli -> l2lExpandArrays.mli
      nodesExpand.mli       -> l2lExpandNodes.mli
      doNoPoly.ml           -> l2lRmPoly.ml
      doAliasTypes.ml       -> l2lAliasType.ml
      doSplit.ml            -> l2lSplit.ml
      65dfa567
  16. Jul 14, 2012
  17. Jul 09, 2010
  18. Jul 06, 2010
  19. Jul 02, 2010
  20. Jan 22, 2010
    • Erwan Jahier's avatar
      Fix a bug in the fresh var names generation. · 0f54289a
      Erwan Jahier authored
      cf test/should_work/NONREG/fresh_name.lus
      
      where the local variable _n1e1_1 was defined twice !
      
      The fix contist the following idea : prefix fresh var name by "_",
         except if at least one user ident begins by "_". In that case, we
         try to prefix them by "_1", and then "_2", and so on. We take the
         first possible one.
      
         nb : this won't work if the user defined idents from "_1" to
         "_1073741823" (on 32-bits machine), but I bet that this compiler
         would die before anyway...
      0f54289a
  21. Sep 15, 2008
  22. Sep 01, 2008
  23. Aug 29, 2008
  24. Aug 28, 2008
  25. Jun 12, 2008
  26. Jun 09, 2008
    • Erwan Jahier's avatar
      Use type_eff_ext everywhere I was using type_eff (and rename · 00c67618
      Erwan Jahier authored
      type_eff_ext into type_eff btw). The  rationale is to be able to type
      alias           on           polymorphic          nodes           (cf
      test/should_fail/semantics/bad_call03.lus,  that now  have  a correct
      error msg).  It also makes  to code more compact (no more translation
      from one  to the  other), and more  general (type_eff_ext  being more
      general than type_eff).  User polymorphic nodes should be easy now.
      
      move all the code in parsey.mly into parserUtil.ml (ease the debug).
      00c67618
  27. Jun 03, 2008
    • Erwan Jahier's avatar
      Wrap the parser output with a new function, · e64e1031
      Erwan Jahier authored
      SolveIdent.recognize_predef_op  that  replaces  node call  by  Predef
      constructor  when   necessary,  via  a  complete   traversal  of  the
      SyntaxTree (instead  of doing it  in the parser). The  rationales for
      this change are that:
      
      - it is quite tedious to do it in parser as multiple locations are involved
      - I did missed some locations
      - It makes the parser more focused on parsing issues
      - that traversal  is a first step  do deal with  idref solving (hence
       the name of the new module that contains that function
      
      Note that lsrc/test/should_work/fab_test/lecteur.lus was using
      "plus" as a variable ident, which raised an error, which
      e64e1031
  28. May 27, 2008
  29. May 20, 2008
  30. Mar 20, 2008
    • Erwan Jahier's avatar
      Add two new modules, Predef and PredefSemantics, that deals with predefined · 4c0a0b1f
      Erwan Jahier authored
      operators. Predef contains the abstract syntax of those operators (taken
      for SyntaxTreeCore.by_pos_op), and PredefSemantics contains:
      
       - const_eval: that says how to statically evaluate constants
       - type_eval: that provides the type profile of predef operators
       - clock_eval: that provides the clock profile of predef operators
      
      The code in EvalConst that dealt with predef const evaluation is now in
      Predef.const_eval
      4c0a0b1f
  31. Mar 11, 2008
    • Erwan Jahier's avatar
      Simplify significantly the node representation. The rational for this · 7f628ceb
      Erwan Jahier authored
      change is
      	- make the parser simpler
      	- make the compilation simpler
      	- make everything simpler actually...
      	- accepts more correct programs.
      	- etc.
      
      Indeed, before, we had specific syntax nodes for
      	- extern nodes
      	- aliased nodes
      	- abstract nodes
      	- normal nodes
      which leads to duplicate code everywhere. Now, we have a more generic
      representation.
      
      The nice thing is that the parser is much simpler, and a lot of
      duplicated code is avoided (for example, extern and abstract nodes do
      now share the same code).
      
      The bad thing is that we have more "assert false" lying everywere due
      to this «too rich» representation, in order to deal with cases
      that can never happen. For exemple, we have to do something with
      nodes that have  both an alias and a body. This cannot happen of
      course, so we issue an "assert false", which is a little bit painful,
      as it have been rejected by the parser anyway.
      
      Moreover, for some reason, external node params could not be clocked,
      and cannot have static params. Maybe it is not possible to compile
      such nodes (I don't know yet), but we should not raise a syntax error IMHO.
      
      Somehow, what was done was very similar to ask the parser to perform type
      checking.
      6.3.0
      7f628ceb
  32. Dec 17, 2007
  33. Dec 14, 2007
Loading