1. 10 Feb, 2004 1 commit
    • Alexandre Duret-Lutz's avatar
      * src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Take an exprop · 07ba321e
      Alexandre Duret-Lutz authored
      argument.  Consider all possible combinations of propositions when
      generating arcs.  Suggested by Jean-Michel Couvreur.
      * src/tgbaalgos/ltl2tgba_fm.hh (ltl_to_tgba_fm): Adjust.
      * src/tgbatest/ltl2tgba.cc: Honor -fx.
      * src/tgbatest/spotlbtt.test: Exercise -fx.
      * wrap/python/cgi/ltl2tgba.in: Support Couvreur/FM with exploded
      properties.
      07ba321e
  2. 08 Feb, 2004 1 commit
    • Alexandre Duret-Lutz's avatar
      This should help getting accurate statistics (on both the · 7069d540
      Alexandre Duret-Lutz authored
      formula automaton and the synchronized product) from LBTT.
      Idea from Jean-Michel Couvreur.
      
      * src/tgbaalgos/lbtt.cc (nonacceptant_lbtt_bfs): New class.
      (nonacceptant_lbtt_reachable): New function.
      * src/tgbaalgos/lbtt.hh (nonacceptant_lbtt_reachable): New
      function.
      * src/tgbatest/ltl2tgba.cc (main): Call nonacceptant_lbtt_reachable
      if the -T option is used.
      * src/tgbatest/spotlbtt.test: Setup the -T variants, disabled by
      default.
      7069d540
  3. 02 Feb, 2004 1 commit
  4. 09 Jan, 2004 1 commit
    • Alexandre Duret-Lutz's avatar
      * src/tgbaalgos/emptinesscheck.cc (emptiness_check::check2): · 93f1cc0d
      Alexandre Duret-Lutz authored
      New function, variant of emptiness_check::check().
      * src/tgbaalgos/emptinesscheck.hh (emptiness_check::check2):
      Likewise.
      * src/tgbatest/emptchk.test, src/tgbatest/emptchke.test: Exercize -e2.
      * src/tgbatest/ltl2tgba.cc: Support -e2, for emptiness_check::check2().
      * iface/gspn/Makefile.am [WITH_GSPN_EESRG] (check_PROGRAMS):
      Compile ltlgspn-eesrg instead of ltleesrg.
      (ltleesrg_SOURCES, ltleesrg_LDADD): Replace by...
      (ltlgspn_eesrg_SOURCES, ltlgspn_eesrg_LDADD, LIBGSPNESRG_LDFLAGS):
      ... these.
      * iface/gspn/ltleesrg.cc: Delete.
      * iface/gspn/ltlgspn.cc [EESRG]: Support EESRG conditionally.
      Support -e2.
      93f1cc0d
  5. 28 Nov, 2003 1 commit
    • Alexandre Duret-Lutz's avatar
      * iface/gspn/eesrg.cc, iface/gspn/eesrg.hh, iface/gspn/gspn.cc, · e341cc9a
      Alexandre Duret-Lutz authored
      iface/gspn/gspn.hh, src/tgba/bdddict.cc, src/tgba/bdddict.hh,
      src/tgba/bddprint.hh, src/tgba/succiter.hh,
      src/tgba/succiterconcrete.cc, src/tgba/succiterconcrete.hh,
      src/tgba/tgba.hh, src/tgba/tgbabddconcrete.cc,
      src/tgba/tgbabddconcrete.hh, src/tgba/tgbabddconcretefactory.cc,
      src/tgba/tgbabddconcretefactory.hh, src/tgba/tgbabddcoredata.cc,
      src/tgba/tgbabddcoredata.hh, src/tgba/tgbaexplicit.cc,
      src/tgba/tgbaexplicit.hh, src/tgba/tgbaproduct.cc,
      src/tgba/tgbaproduct.hh, src/tgba/tgbatba.cc, src/tgba/tgbatba.hh,
      src/tgbaalgos/dotty.cc, src/tgbaalgos/dupexp.cc,
      src/tgbaalgos/emptinesscheck.cc, src/tgbaalgos/emptinesscheck.hh,
      src/tgbaalgos/lbtt.cc, src/tgbaalgos/lbtt.hh,
      src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/ltl2tgba_lacim.cc,
      src/tgbaalgos/save.cc, src/tgbatest/explicit.cc,
      src/tgbatest/ltl2tgba.cc, src/tgbaparse/tgbaparse.yy,
      wrap/python/tests/ltl2tgba.py:
      Rewrite `accepting condition' as `acceptance condition'.
      The symbols which have been renamed are:
      tgba::all_accepting_conditions
      tgba::neg_accepting_conditions
      succ_iterator::current_accepting_conditions
      bdd_dict::register_accepting_variable
      bdd_dict::register_accepting_variables
      bdd_dict::is_registered_accepting_variable
      tgba_bdd_concrete_factory::declare_accepting_condition
      tgba_bdd_core_data::accepting_conditions
      tgba_bdd_core_data::all_accepting_conditions
      tgba_explicit::declare_accepting_condition
      tgba_explicit::complement_all_accepting_conditions
      tgba_explicit::has_accepting_condition
      tgba_explicit::get_accepting_condition
      tgba_explicit::add_accepting_condition
      tgba_explicit::all_accepting_conditions
      tgba_explicit::neg_accepting_conditions
      state_tba_proxy::acceptance_cond
      accepting_cond_splitter
      e341cc9a
  6. 14 Nov, 2003 1 commit
    • Alexandre Duret-Lutz's avatar
      * src/ltltest/Makefile.am (AM_CXXFLAGS): New variable. · 982c5efc
      Alexandre Duret-Lutz authored
      * tgba/bdddict.hh (bdd_dict::register_propositions,
      bdd_dict::register_accepting_variables): New methods.
      * src/bdddict.cc: Likewise.
      * tgba/tgbaexplicit.cc (tgba_explicit::add_conditions,
      tgba_explicit::add_accepting_conditions): New methods.
      (tgba_explicit::get_init_state): Add an "empty" initial
      state to empty automata.
      * tgba/tgbaexplicit.hh: (tgba_explicit::add_conditions,
      tgba_explicit::add_accepting_conditions): New methods.
      * tgbaalgos/Makefiles.am (tgbaalgos_HEADERS, libtgbaalgos_la_SOURCES):
      Add dupexp.hh and dupexp.cc.
      * tgbaalgos/dupexp.hh, tgbaalgos/dupexp.cc: New files.
      * tgbatest/Makefile.am (AM_CXXFLAGS): New variable.
      (check_SCRIPTS): Add dupexp.test.
      (CLEANFILES): Add output1 and output2.
      * tgbatest/dupexp.test: New file.
      * tgbatest/ltl2tgba.cc: Handle -s and -S.
      * tgbatest/tgbaread.cc: Remove unused variable exit_code.
      982c5efc
  7. 23 Oct, 2003 3 commits
    • Alexandre Duret-Lutz's avatar
      * src/tgbaalgos/emptinesscheck.hh (emptiness_check::emptiness_check): · 90099e47
      Alexandre Duret-Lutz authored
      New, take the automaton to work on, and store it ...
      (emptiness_check::aut_): ... in this new attribute.
      (emptiness_check::tgba_emptiness_check): Rename as ...
      (emptiness_check::check): ... this, and remove the automata
      argument.
      (emptiness_check::counter_example, emptiness_check::print_result,
      emptiness_check::remove_component, emptiness_check::accepting_path,
      emptiness_check::complete_cycle): Remove the automata argument.
      * src/tgbaalgos/emptinesscheck.cc, src/tgbatest/ltl2tgba.cc,
      iface/gspn/ltlgspn.cc: Adjust.
      90099e47
    • Alexandre Duret-Lutz's avatar
      Merge emptinesscheckexplicit into ltl2tgba. · d46c63a2
      Alexandre Duret-Lutz authored
      * src/tgbatest/Makefile.am (check_PROGRAMS): Remove
      emptinesscheckexplicit.
      (emptinesscheckexplicit_SOURCES): Remove.
      (TESTS): Replace emptinesscheckexplicit.test by emptchke.test.
      * src/tgbatest/emptinesscheckexplicit.cc,
      src/tgbatest/emptinesscheckexplicit.test: Delete.
      * src/tgbatest/empchke.test: New file.
      * src/tgbatest/ltl2tgba.cc: Add support for -X.
      d46c63a2
    • Alexandre Duret-Lutz's avatar
      Merge emptiness-checks tests into ltl2tgba. · 65f84e2c
      Alexandre Duret-Lutz authored
      * src/tgbatest/Makefile (check_PRORGRAMS): Remove
      emptinesscheck and ltlmagic.
      (emptinesscheck_SOURCES, ltlmagic_SOURCES): Remove.
      (TESTS): Replace emptinesscheck.test and ltlmagic.test by
      emptchk.test.
      * src/tgbatest/emptinesscheck.test, src/tgbatest/ltlmagic.test:
      Delete.
      * src/tgbatest/emptchk.test: New file.
      * src/tgbatest/emptinesscheck.cc, src/tgbatest/ltlmagic.cc:
      Delete.
      * src/tgbatest/ltl2tgba.cc: Add support for -e, -E, -m, -M, and -n.
      65f84e2c
  8. 22 Sep, 2003 1 commit
    • Alexandre Duret-Lutz's avatar
      * src/tgbaalgos/ltl2tgba.cc, src/tgbaalgos/ltl2tgba.hh: Rename as ... · 83565fb6
      Alexandre Duret-Lutz authored
      * src/tgbaalgos/ltl2tgba_lacim.cc, src/tgbaalgos/ltl2tgba_lacim.hh:
      ... this, and rename ltl_to_tgba() as ltl_to_tgba_lacim as well.
      * iface/gspn/ltlgspn.cc, src/tgbatest/explprod.cc,
      src/tgbatest/ltl2tgba.cc, src/tgbatest/ltlmagic.cc,
      src/tgbatest/ltlprod.cc, src/tgbatest/mixprod.cc,
      src/tgbatest/tripprod.cc, wrap/python/spot.i,
      wrap/python/cgi/ltl2tgba.in, wrap/python/tests/interdep.py,
      wrap/python/tests/ltl2tgba.py: Adjust.
      83565fb6
  9. 15 Aug, 2003 1 commit
    • Alexandre Duret-Lutz's avatar
      This implements Couvreur's FM'99 ltl2tgba translation. · 2b9f1720
      Alexandre Duret-Lutz authored
      * src/tgba/bdddict.cc (bdd_dict::is_registered): Split as ...
      (bdd_dict::is_registered_proposition, bdd_dict::is_registered_state,
      bdd_dict::is_registered_accepting_variable): ... these.
      * src/tgba/bdddict.hh: Likewise.
      * src/tgba/tgbaexplicit.cc (tgba_explicit::set_init_state): New method.
      (tgba_explicit::declare_accepting_condition): Arrange so that this
      function can be called during the construction of the automaton.
      (tgba_explicit::complement_all_accepting_conditions): New method.
      (tgba_explicit::has_accepting_condition): Adjust to call
      bdd_dict::is_registered_accepting_variable.
      * src/tgba/tgbaexplicit.hh (tgba_explicit::set_init_state,
      tgba_explicit::complement_all_accepting_conditions): New methods.
      * src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/ltl2tgba_fm.hh:
      New files.
      * src/tgbaalgos/Makefile.am (tgbaalgos_HEADERS,
      libtgbaalgos_la_SOURCES): Add them.
      * src/tgbaalgos/ltl2tgba.hh: Add bibtex entry in comment.
      * src/tgbatest/Makefile.am (check_PROGRAMS): Remove spotlbtt
      and tbalbtt.
      (tbalbtt_SOURCES, tbalbtt_CXXFLAGS, spotlbtt_SOURCES): Remove.
      * src/tgbatest/spotlbtt.cc: Delete, superseded by "ltl2tgba -F -t".
      * src/tgbatest/ltl2tgba.cc: Implement the -f and -F options.
      * src/tgbatest/spotlbtt.test: Use "ltl2tgba -F -t" instead of
      "spotlbtt", "ltl2tgba -F -t -D" instead of "tbalbtt", and add
      also check the ltl2tgba_fm translator.
      * wrap/python/spot.i: Wrap ltl2tgba_fm.
      * wrap/python/cgi/ltl2tgba.in: Add radio buttons to select
      between ltl2tgba and ltl2tgba_fm.
      * wrap/python/tests/ltl2tgba.py: Add support for the -f option.
      * wrap/python/tests/ltl2tgba.test: Try the -f option.
      2b9f1720
  10. 25 Jul, 2003 1 commit
  11. 15 Jul, 2003 1 commit
    • Alexandre Duret-Lutz's avatar
      Homogenize passing of automata as pointers, not references. · 66b1630c
      Alexandre Duret-Lutz authored
      Disallow copy for security.
      
      * src/tgba/tgbabddconcrete.hh (tgba_bdd_concrete): Disallow copy.
      * src/tgba/tgbaexplicit.hh (tgba_explicit): Likewise.
      * src/tgba/tgbaexplicit.cc (tgba_explicit::operator=,
      tgba_explicit::tgba_explicit(tgba_explicit)): Remove.
      * src/tgba/tgbabddconcreteproduct.cc
      (tgba_bdd_concrete_product_factory::tgba_bdd_concrete_product_factory,
      product): Take operand automata as pointers.
      * src/tgba/tgbabddconcreteproduct.hh (product): Likewise.
      * src/tgba/tgbaproduct.cc, src/tgba/tgbaproduct.hh:
      (tgba_product): Disallow copy.
      (tgba_product::tgba_product): Take operand automata as pointers.
      * src/tgbaalgos/dotty.cc (dotty_state, dotty_rec, dotty_reachable):
      Take tgba arguments as pointer.
      * src/tgbaalgos/dotty.hh (dotty_reachable): Likewise.
      * src/tgbaalgos/lbtt.cc (fill_todo, lbtt_reachable): Likewise.
      * src/tgbaalgos/lbtt.hh (lbtt_reachable): Likewise.
      * src/tgbaalgos/ltl2tgba.cc, src/tgbaalgos/ltl2tgba.hh (ltl_to_tgba):
      Likewise.
      * src/tgbaalgos/save.cc (save_rec, tgba_save_reachable): Likewise.
      * src/tgbaalgos/save.hh (save): Likewise.
      * src/tgbatest/explicit.cc, src/tgbatest/explprod.cc,
      src/tgbatest/ltl2tgba.cc, src/tgbatest/ltlprod.cc,
      src/tgbatest/mixprod.cc, src/tgbatest/readsave.cc,
      src/tgbatest/spotlbtt.cc, src/tgbatest/tgbaread.cc,
      src/tgbatest/tripprod.cc: Likewise.
      66b1630c
  12. 14 Jul, 2003 1 commit
    • Alexandre Duret-Lutz's avatar
      Before this change, all automata would construct their own · cab3be97
      Alexandre Duret-Lutz authored
      dictionaries (map of BDD variables to LTL formulae).  This was
      cumbersome, because to multiply two automata we had to build a
      common dictionary (the union of the two LTL formula spaces), and
      install wrappers to translate each automaton's BDD answers into
      the common dictionary.  This translation, that had to be repeated
      when several products were nested, was time consuming and was a
      hindrance for some optimizations.
      In the new scheme, all automata involved in a product must
      share the same dictionary.  An empty dictionary should be
      constructed by the user and passed to the automaton' constructors
      as necessary.
      This huge change removes most code than it adds.
      
      * src/Makefile.am (libspot_la_LIBADD): Add misc/libmisc.la.
      * src/misc/bddalloc.hh, src/misc/bddalloc.cc: New files.  These
      partly replace src/tgba/bddfactory.hh and src/tgba/bddfactory.cc.
      * src/misc/Makefile.am: Adjust to build bddalloc.hh and bddalloc.cc.
      * src/tgba/bddfactory.hh, src/tgba/bddfactory.cc,
      src/tgba/dictunion.hh, src/tgba/dictunion.cc,
      src/tgba/tgbabdddict.hh, src/tgba/tgbabdddict.cc,
      src/tgba/tgbabddtranslatefactory.hh,
      src/tgba/tgbabddtranslatefactory.cc,
      src/tgba/tgbatranslateproxy.hh, src/tgba/tgbatranslateproxy.cc:
      Delete.
      * src/tgba/bdddict.hh, src/tgba/bdddict.cc: New files.  These
      replaces tgbabdddict.hh and tgbabdddict.cc, and also part of
      bddfactory.hh and bddfactory.cc.
      * src/tgba/bddprint.cc, src/tgba/bddprint.hh: Adjust to
      use bdd_dict* instead of tgba_bdd_dict&.
      * src/tgba/succiterconcrete.cc (succ_iter_concrete::next()):
      Get next_to_now from the dictionary.
      * src/tgba/tgba.hh (tgba::get_dict): Return a bdd_dict*,
      not a const tgba_bdd_dict*.
      * src/tgba/tgbabddconcrete.cc, src/tgba/tgbabddconcrete.hh:
      Adjust to use the new dictionary, stored in data_.
      * src/tgba/tgbabddconcretefactory.cc,
      src/tgba/tgbabddconcretefactory.hh: Likewise.  Plus
      now_to_next_ is now also stored in the dictionary.
      * src/tgba/tgbabddconcreteproduct.cc: Likewise.  Now
      that both operand share the same product, there is not
      point in using tgba_bdd_translate_factory.
      * src/tgba/tgbabddcoredata.cc, src/tgba/tgbabddcoredata.hh:
      Store a bdd_dict (taken as constructor argument).
      (tgba_bdd_core_data::~tgba_bdd_core_data): Remove.
      (tgba_bdd_core_data::translate): Remove.
      (tgba_bdd_core_data::next_to_now): Remove (now in dict).
      (tgba_bdd_core_data::dict): New pointer.
      * src/tgba/tgbabddfactory.hh: (tgba_bdd_factory::get_dict): Remove.
      * src/tgba/tgbaexplicit.cc, src/tgba/tgbaexplicit.hh:
      Adjust to use the new dictionary.
      * src/tgba/tgbaproduct.cc, src/tgba/tgbaproduct.hh: Likewise.  Do
      not use tgba_bdd_dict_union and tgba_bdd_translate_proxy anymore.
      * src/tgbaalgos/lbtt.cc, src/tgbaalgos/save.cc: Adjust to
      use bdd_dict* instead of tgba_bdd_dict&.
      * src/tgbaalgos/ltl2tgba.cc, src/tgbaalgos/ltl2tgba.cc: Likewise.
      (ltl_to_tgba): Take a dict argument.
      * src/tgbaparse/public.hh (tgba_parse): Take a dict argument.
      * src/tgbaparse/tgbaparse.yy (tgba_parse): Take a dict argument.
      * src/tgbatest/explicit.cc, src/tgbatest/explprod.cc,
      src/tgbatest/ltlprod.cc, src/tgbatest/mixprod.cc,
      src/tgbatest/readsave.cc, src/tgbatest/spotlbtt.cc,
      src/tgbatest/tgbaread.cc, src/tgbatest/tripprod.cc: Instantiate
      a dictionary, and pass it to the automata' constructors.
      * src/tgbatest/ltl2tgba.cc: Likewise, and remove the -o (defrag)
      option.
      * iface/gspn/gspn.hh (tgba_gspn::tgba_gspn): Take a bdd_dict argument.
      (tgba_gspn::get_dict): Adjust return type.
      * iface/gspn/gspn.cc: Do not use bdd_factory, adjust to
      use the new dictionary instead.
      cab3be97
  13. 08 Jul, 2003 1 commit
  14. 26 Jun, 2003 1 commit
    • Alexandre Duret-Lutz's avatar
      * src/tgba/ltl2tgba.hh, src/tgba/ltl2tgba.cc: Move ... · 7fdd7861
      Alexandre Duret-Lutz authored
      * src/tgbaalgos/ltl2tgba.hh, src/tgbaalgos/ltl2tgba.cc: ... here.
      * src/tgba/Makefile.am, src/tgbaalgos/Makefile.am: Adjust.
      * src/tgba/public.hh: Do not include ltl2tgba.hh.
      * src/tgbatests/explprod.cc, src/tgbatests/ltl2tgba.cc,
      src/tgbatests/ltlprod.cc, src/tgbatests/mixprod.cc,
      src/tgbatests/reach.cc, src/tgbatests/tripprod.cc: Adjust inclusions.
      7fdd7861
  15. 25 Jun, 2003 4 commits
  16. 24 Jun, 2003 1 commit
  17. 23 Jun, 2003 1 commit
    • Alexandre Duret-Lutz's avatar
      Switch from "promises" to "accepting set". Fix the definitions · 25e6cca4
      Alexandre Duret-Lutz authored
      of these accepting set so that they are really usable.  Provide
      a all_accepting_conditions() method for use in the emptyness
      check, and a neg_accepting_conditions() for products.
      Predeclare TGBA accepting conditions is the i/o.
      
      * src/tgba/bddprint.cc (want_prom): Rename as ...
      (want_prom): ... this.
      (print_handler): Adjust to display Acc[].
      (print_acc_handler, bdd_print_acc): New functions.
      * src/tgba/bddprint.hh (print_acc_handler, bdd_print_acc):
      New functions.
      * src/tgba/succiter.hh (current_promise): Rename as ...
      (current_accepting_conditions): ... this.
      * src/tgba/succiterconcrete.cc (current_state):
      Rename next to now.
      (current_promise): Rename as ...
      (current_accepting_conditions): ... this, and compute
      the accepting conditions.
      * src/tgba/dictunion.cc, src/tgba/ltl2tgba.cc,
      src/tgba/succiterconcrete.hh,
      src/tgba/tgbabddconcretefactory.cc,
      src/tgba/tgbabddcoredata.cc, src/tgba/tgbabddcoredata.hh,
      src/tgba/tgbabdddict.hh, src/tgba/tgbabdddict.cc,
      src/tgba/tgbabddtranslatefactory.cc,
      src/tgbaalgos/dotty.cc: Adjust to new names.
      * src/tgba/tgba.hh (all_accepting_conditions,
      neg_accepting_conditions): New functions.
      * src/tgba/tgbabddconcretefactory.cc: Adjust to new
      names, and record accepting conditions instead of promises.
      * src/tgba/tgbabddcoredata.hh (accepting_conditions,
      all_accepting_conditions, negacc_set): New variables.
      (notnow_set, notprom_set, declare_promise): Rename as ...
      (notnext_set, notacc_set, declare_accepting_condition): ... these.
      * src/tgba/tgbaexplicit.hh
      (tgba_explicit_succ_iterator::current_promise): Rename as ...
      (tgba_explicit_succ_iterator::current_accepting_conditions): ... this.
      (tgba_explicit::add_promise): Rename as ...
      (tgba_explicit::add_accepting_condition): ... this.
      (tgba_explicit::declare_accepting_condition,
      tgba_explicit::has_accepting_condition): New variables.
      (tgba_explicit::get_promise): Rename as ...
      (tgba_explicit::get_accepting_condition): ... this.
      (tgba_explicit::all_accepting_conditions,
      tgba_explicit::neg_accepting_conditions): Implement them.
      (all_accepting_conditions, neg_accepting_conditions,
      all_accepting_conditions): New variables.
      (tgba_explicit_succ_iterator): Embed all_accepting_conditions_.
      * src/tgba/tgbaexplicit.cc: Likewise.
      * src/tgba/tgbaproduct.hh
      (tgba_product_succ_uterator): Embed left_neg_ and right_neg_.
      (tgba_product::all_accepting_conditions,
      tgba_product::neg_accepting_conditions): Implement them.
      * src/tgba/tgbatranslateproxy.hh:
      (tgba_translate_proxy::all_accepting_conditions,
      tgba_translate_proxy::neg_accepting_conditions): Implement them.
      * src/tgba/tgbatranslateproxy.cc: Likewise.
      * src/tgbaalgos/save.cc (save_rec): Call bdd_print
      (tgba_save_reachable): Output the `acc =' line.
      * src/tgbaparse/tgbaparse.yy: Support the for
      accepting conditions definitions using an "acc =" line
      at the start.  Later, use has_accepting_condition while
      parsing	accepting conditions to ensure they were declared.
      Disallow !cond in accepting conditions.
      * src/tgbaparse/tgbascan.ll (ACC_DEF): New token.
      * src/tgbatest/explicit.cc (main): Declare accepting conditions.
      * src/tgbatest/ltl2tgba.cc (main): Add support for the -a, -A,
      and -R new options.
      * src/tgbatest/tgbaread.cc (main): Really exit on parse error.
      * src/tgbatest/explicit.test, src/tgbatest/explprod.test,
      src/tgbatest/mixprod.test, src/tgbatest/readsave.test,
      src/tgbatest/tgbaread.test, src/tgbatest/tripprod.test: Reflect
      recent changes.
      25e6cca4
  18. 19 Jun, 2003 1 commit
  19. 06 Jun, 2003 2 commits
    • Alexandre Duret-Lutz's avatar
      * src/ltlvisit/clone.cc (clone): New const version. · 3991a51a
      Alexandre Duret-Lutz authored
      * src/ltlvisit/clone.hh (clone): Likewise.
      * src/ltlvisit/destroy.cc (destroy): New const version.
      * src/ltlvisit/destroy.hh (destroy): Likewise.
      * src/tgba/tgbabddconcretefactory.cc
      (tgba_bdd_concrete_factory::create_state,
      tgba_bdd_concrete_factory::create_atomic_prop,
      tgba_bdd_concrete_factory::promise): Clone new formulae.
      * src/tgba/tgbabdddict.cc (tgba_bdd_dict::tgba_bdd_dict,
      tgba_bdd_dict::~tgba_bdd_dict, tgba_bdd_dict::operator=): New methods
      that clone and destroy formulae.
      * src/tgbatest/ltl2tgba.test, src/tgbatest/ltl2tgba.cc: New files.
      * src/tgbatest/Makefile.am (check_PROGRAMS): Add ltl2tgba.
      (ltl2tgba_SOURCES): New variable.
      (TESTS): Add ltl2tgba.test.
      3991a51a
    • Alexandre Duret-Lutz's avatar
      * src/ltltest/equals.cc, src/ltltest/readltl.cc, · 578fa26c
      Alexandre Duret-Lutz authored
      src/tgba/bddprint.cc, src/ltltest/tostring.cc: Include <cassert>.
      578fa26c
  20. 05 Jun, 2003 1 commit
    • Alexandre Duret-Lutz's avatar
      * configure.ac: Output src/tgbaparse/Makefile. · 6884a7f9
      Alexandre Duret-Lutz authored
      * src/Makefile.am (SUBDIRS): Add tgbaparse.
      (libspot_la_LDADD): Add tgbaparse/libtgbaparse.la.
      * src/tgba/tgbaexplicit.cc (tgba_explicit::get_condition,
      tgba_explicit::get_promise, tgba_explicit::add_neg_condition,
      tgba_explicit::add_neg_promise): New methods.
      * src/tgba/tgbaexplicit.hh: Declare them.
      * src/tgbaparse/Makefile.am, src/tgbaparse/fmterror.cc,
      src/tgbaparse/parsedecl.hh, src/tgbaparse/public.hh,
      src/tgbaparse/tgbaparse.yy, src/tgbaparse/tgbascan.ll,
      src/tgbatest/tgbaread.cc, src/tgbatest/tgbaread.test: New files.
      * src/tgbatest/Makefile.am (check_PROGRAMS): Add tgbaread.
      (TESTS): Add tgbaread.cc.
      (CLEANFILES): Add input.
      (tgbaread_SOURCES): New variable.
      6884a7f9
  21. 16 May, 2003 1 commit
    • Alexandre Duret-Lutz's avatar
      * src/ltlvisit/dump.hh (dump): Take a formula* as argument, · 7685d3a5
      Alexandre Duret-Lutz authored
      not a formula&.  This is more homogeneous.
      * src/ltlvisit/dump.cc (dump): Likewise.
      * src/ltlvisit/dotty.hh (dotty): Likewise.
      * src/ltlvisit/dotty.cc (dotty): Likewise.
      * src/ltlvisit/tostring.hh (to_string): Likewise.
      * src/ltlvisit/tostring.cc (to_string): Likewise.
      * src/ltltest/readltl.cc, src/ltltest/equals.cc,
      src/ltltest/tostring.cc: Adjust usage.
      7685d3a5
  22. 15 May, 2003 2 commits
    • Alexandre Duret-Lutz's avatar
      Implements spot::ltl::destroy() and exercise it. · 9123e56f
      Alexandre Duret-Lutz authored
      * src/ltlast/atomic_prop.hh: Declare instance_count().
      * src/ltlast/binop.hh, src/ltlast/unop.hh, src/ltlast/multop.hh:
      Likewise.  Also, really inherit for ref_formula this time.
      * src/ltlast/atomic_prop.cc, src/ltlast/binop.cc,
      src/ltlast/unop.cc, src/ltlast/multop.cc: On destruction, suppress
      the instance from the instance map.  Implement instance_count().
      * src/ltlast/formula.cc, src/ltlast/formula.hh,
      src/ltlast/ref_formula.cc, src/ltlast/ref_formula.hh: Add virtual
      destructors.
      * src/ltlparse/ltlparse.yy: Recover from binary operators with
      missing right hand operand (the point is just to destroy the
      the left hand operand).
      * src/ltltest/equals.cc, src/ltltest/readltl.cc,
      src/ltltest/tostring.cc: Destroy used formulae.  Make sure
      instance_count()s are null are the end.
      * src/ltltest/parseerr.test: Adjust expected result, now
      that the parser lnows about missing right hand operands.
      * src/ltlvisit/destroy.hh, src/ltlvisit/destroy.cc,
      src/ltlvisit/postfix.hh, src/ltlvisit/postfix.cc: New files.
      * src/ltlvisit/Makefile.am (libltlvisit_la_SOURCES): Add them.
      * src/ltlvisit/lunabbrev.cc (Xor, Equiv): Clone formulae
      occurring twice in the rewritten expression.
      9123e56f
    • Alexandre Duret-Lutz's avatar
      Massage the AST so that identical sub-formula share the same · 5f6d8b62
      Alexandre Duret-Lutz authored
      reference-counted formula*.  One can't call constructors for AST
      items anymore, everything need to be acquired through instance()
      class methods.
      
      * src/ltlast/formula.cc, src/ltlast/refformula.cc,
      src/ltlast/refformula.hh: New files.
      * src/ltlast/Makefile.am (libltlast_la_SOURCES): Add them.
      * src/ltlast/atomic_prop.cc, src/ltlast/atomic_prop.hh,
      src/ltlast/unop.cc, src/ltlast/unop.hh,
      src/ltlast/binop.cc, src/ltlast/binop.hh: Make the constructor
      and destructor protected.  Define a static function `instance()'
      to get an instance with specific argument.  Use a map called
      `instances' to store all known instances.  Inherit from
      ref_formula.
      * src/ltlast/constant.hh, src/ltlast/constant.cc: Protect
      the constructor and destructor.  Provide the false_instance()
      and true_instance() functions instead.
      * src/formula.hh (ref, unref, ref_, unref_): New methods.
      * src/ltlast/multop.cc, src/ltlast/multop.hh: Protect
      the constructor, destructor, as well as the add() method.
      Provides the instance(), and add() class methods instead.
      Store children_ as a pointer.
      * src/ltlenv/defaultenv.cc (require): Adjust to
      call atomic_prop::instance.
      * src/ltlparse/ltlparse.yy: Adjust to call instance() functions
      instead of constructors.
      * src/ltltest/Makefile.am (LDADD): Tweak library ordering.
      * src/ltlvisit/clone.hh (clone_visitor): Inherit from visitor,
      not const_visitor, and adjust all prototypes appropriately.
      * src/ltlvisit/clone.cc (clone_visitor): Likewise.
      Call ref() or instance() methods instead of copy constructors.
      * src/ltlvisit/equals.cc: Simplify atomic_prop and constant
      cases.
      * src/ltlvisit/lunabbrev.hh, src/ltlvisit/lunabbrev.cc,
      src/ltlvisit/tunabbrev.hh, src/ltlvisit/tunabbrev.cc,
      src/ltlvisit/nenoform.hh, src/ltlvisit/nenoform.cc: Use instance()
      methods instead of constructor.  Make these children of visitor, not
      const_visitor.
      * src/ltltest/readltl.c (main): Do not delete the formula.
      5f6d8b62
  23. 17 Apr, 2003 2 commits
  24. 16 Apr, 2003 2 commits
  25. 15 Apr, 2003 1 commit
    • Alexandre Duret-Lutz's avatar
      * HACKING, Makefile.am, configure.ac, m4/gccwarn.m4, · f0a8d0ae
      Alexandre Duret-Lutz authored
      src/Makefile.am, src/ltlast/Makefile.am, src/ltlast/allnodes.hh,
      src/ltlast/atomic_prop.cc, src/ltlast/atomic_prop.hh,
      src/ltlast/binop.cc, src/ltlast/binop.hh, src/ltlast/constant.cc,
      src/ltlast/constant.hh, src/ltlast/formulae.hh,
      src/ltlast/multop.cc, src/ltlast/multop.hh, src/ltlast/predecl.hh,
      src/ltlast/unop.cc, src/ltlast/unop.hh, src/ltlast/visitor.hh,
      src/ltlparse/Makefile.am, src/ltlparse/ltlparse.yy,
      src/ltlparse/ltlscan.ll, src/ltlparse/parsedecl.hh,
      src/ltlparse/public.hh, src/ltlvisit/Makefile.am,
      src/ltlvisit/dotty.cc, src/ltlvisit/dotty.hh,
      src/ltlvisit/dump.cc, src/ltlvisit/dump.hh,
      src/ltlvisit/rewrite.cc, src/ltlvisit/rewrite.hh,
      src/ltltest/Makefile.am, src/ltltest/defs.in, src/ltltest/readltl.cc,
      src/ltltest/parse.test, src/ltltest/parseerr.test,
      src/misc/Makefile.am, src/misc/const_sel.hh: New files.
      f0a8d0ae