1. 07 Feb, 2011 1 commit
  2. 03 Feb, 2011 1 commit
    • Alexandre Duret-Lutz's avatar
      Read guard of the form !(x) in neverclaims. · 91e51c4c
      Alexandre Duret-Lutz authored
      So far all neverclaims encountered would use (!(x)), but the
      files from the Büchi store do not.
      
      * src/neverparse/neverclaimscan.ll: Accept ! in front of guard,
      so that we can read Promela files from Goal's Büchi store.
      * src/tgbatest/neverclaimread.test: Test it.
      91e51c4c
  3. 06 Nov, 2010 3 commits
    • Alexandre Duret-Lutz's avatar
      Make sure the neverclaim parser works on the output of spin and · fe1f59cd
      Alexandre Duret-Lutz authored
      ltl2ba.
      
      * src/neverparse/neverclaimparse.yy: Accept multiple labels
      for the same state.  Honor accepting states.  Forward parse
      error from the parser used for guards.  Accept "false" as a
      single instruction for a state.
      * src/neverparse/neverclaimscan.ll: Recognize "false" specifically,
      and remove the ";" hack.
      * src/tgba/tgbaexplicit.cc
      (tgba_explicit_string::~tgba_explicit_string): Adjust not to
      destroy a state twice.
      * src/tgba/tgbaexplicit.hh
      (tgba_explicit_string::add_state_alias): New function.
      * src/tgbatest/defs.in (SPIN, LTL2BA): New variables.
      * src/tgbatest/neverclaimread.test: Check error messages for
      syntax errors in guards.  Make sure we can read the output
      of `spin -f' and `ltl2ba -f' on a few test formulae.
      fe1f59cd
    • Alexandre Duret-Lutz's avatar
      Cleanup neverclaim support. · ac08c5ab
      Alexandre Duret-Lutz authored
      * src/neverclaimparse/: Shorthen as ...
      * src/neverparse/:... this.
      * src/Makefile.am: Adjust, and add back the directories mistakenly
      removed by previous patch.
      * README: Adjust, and keep the file's width under 80 columns.
      * configure.ac: Adjust.
      * src/neverparse/Makefile.am, src/neverparse/fmterror.cc,
      src/neverparse/neverclaimparse.yy,
      src/neverparse/neverclaimscan.ll, src/neverparse/public.hh:
      Fix copyright.
      * src/tgbatest/Makefile.am (check_PROGRAMS): Remove neverclaimread.
      * src/tgbatest/ltl2tgba.cc: Add option -XN to read a neverclaim.
      * src/tgbatest/readneverclaim.cc: Delete.
      * src/tgbatest/neverclaimread.test: Use ltl2tgba instead of
      neverclaimread.
      ac08c5ab
    • Felix Abecassis's avatar
      Add never claim parser. · ab6ec5cb
      Felix Abecassis authored and Alexandre Duret-Lutz's avatar Alexandre Duret-Lutz committed
      * src/neverclaimparse/: New directory.
      * src/neverclaimparse/fmterror.cc: New file.  Print a formatted parse
      error on a output stream.
      * src/neverclaimparse/neverclaimparse.yy: New file.  Parser declaration
      for Bison.
      * src/neverclaimparse/neverclaimscan.ll: New file.  Scanner declaration
      for Flex.
      * src/neverclaimparse/public.hh: New file.  Public header for external
      use.
      * src/neverclaimparse/parsedecl.hh: New file.  Header file for
      Flex-Bison interaction.
      * src/neverclaimparse/Makefile.am: New Makefile.
      * src/tgbatest/neverclaimread.cc: New file.  Test program for the
      never claim parser.
      * src/tgbatest/neverclaimread.test: New file.  Test script for the
      never claim parser.
      * src/tgbatest/Makefile.am: Adjust.
      * configure.ac : Adjust.
      * README: Adjust.
      ab6ec5cb
  4. 25 Feb, 2008 1 commit
    • Alexandre Duret-Lutz's avatar
      * src/evtgbatest/evtgbaparse.yy, src/evtgbaparse/evtgbascan.ll, · c0552123
      Alexandre Duret-Lutz authored
      src/evtgbaparse/parsedecl.hh, src/evtgbaparse/public.hh,
      src/ltlparse/fmterror.cc, src/ltlparse/ltlparse.yy,
      src/ltlparse/ltlscan.ll, src/ltlparse/parsedecl.hh,
      src/ltlparse/public.hh, src/tgbaparse/parsedecl.hh,
      src/tgbaparse/public.hh, src/tgbaparse/tgbaparse.yy,
      src/tgbaparse/tgbascan.ll: Adjust for Bison 2.3.  Use %name-prefix
      instead of the "#define yy ... " kludge.
      c0552123
  5. 16 Dec, 2004 1 commit
    • Alexandre Duret-Lutz's avatar
      * src/ltlparse/ltlscan.ll: Pass yyleng to the std::string constructor, · 0efca0f6
      Alexandre Duret-Lutz authored
      so it doesn't have to compute it.
      * src/tgbaparse/tgbascan.ll: Likewise.
      (YY_USER_INIT, current_file): Remove, it is too costly to use
      yy::Location::filename in the current implementation
      of yy::Location (this attribute is duplicated for each token).
      Leaving it empty divides the parsing time by 3.
      * src/tgbaparse/fmterror.cc, src/tgbaparse/public.hh
      (format_tgba_parse_errors): Take the filename as argument.
      * src/tgbatest/explprod.cc, src/tgbatest/ltl2tgba.cc,
      src/tgbatest/mixprod.cc, src/tgbatest/powerset.cc,
      src/tgbatest/readsave.cc, src/tgbatest/reductgba.cc,
      src/tgbatest/tgbaread.cc, src/tgbatest/tripprod.cc,
      iface/gspn/dottyssp.cc, iface/gspn/ltlgspn.cc: Adjust calls
      to format_tgba_parse_errors.
      0efca0f6
  6. 24 Nov, 2003 1 commit
    • Alexandre Duret-Lutz's avatar
      Explicit automata can now have arbitrary logic formula on their · 20289e4e
      Alexandre Duret-Lutz authored
      arcs.  ltl2tgba_fm benefits from this and join multiple arcs with
      the same destination and acceptance conditions.
      * src/tgba/formula2bdd.cc, src/tgba/formula2bdd.hh: New files.
      * src/tgba/Makefile.am (tgba_HEADERS, libtgba_la_SOURCES): Add them.
      * src/tgba/bddprint.cc, src/tgba/bddprint.hh (bdd_pring_formula,
      bdd_format_formula): New functions.
      * src/tgba/tgbaexplicit.hh (tgba_explicit::get_condition,
      tgba_explicit::add_condition, tgba_explicit::add_neg_condition,
      tgba_explicit::declare_accepting_condition,
      tgba_explicit::has_accepting_condition,
      tgba_explicit::get_accepting_condition,
      tgba_explicit::add_accepting_condition): Take a const formula*.
      * src/tgba/tgbaexplicit.cc (tgba_explicit::add_condition):
      Rewrite using formula_to_bdd.
      * src/tgbaalgos/dotty.cc (dotty_bfs::process_link): Use
      bdd_print_formula to display conditions.
      * src/tgbaalgos/save.cc (save_bfs::process_state): Likewise.
      * src/tgbaalgos/ltl2tgba_fm.cc (translate_dict::bdd_to_formula):
      New function.
      (translate_dict::conj_bdd_to_atomic_props): Remove.
      (ltl_to_tgba_fm): Factor successors on accepting conditions
      and destinations, not conditions.  Use bdd_to_formula to translate
      the conditions.
      * src/tgbaparse/tgbaparse.yy: Expect conditions as a formula
      in a string, call the LTL parser for this.
      * src/tgbaparse/tgbascan.ll: Process " and \ escapes in
      strings.
      * src/tgbatest/emptchke.test, src/tgbatest/explicit.test,
      src/tgbatest/explpro2.test, src/tgbatest/explpro3.test,
      src/tgbatest/explprod.test, src/tgbatest/mixprod.test,
      src/tgbatest/readsave.test, src/tgbatest/tgbaread.test,
      src/tgbatest/tripprod.test: Adjust to new syntax for explicit
      automata.
      20289e4e
  7. 21 Nov, 2003 1 commit
    • Alexandre Duret-Lutz's avatar
      * COPYING: New file. · 43a91a15
      Alexandre Duret-Lutz authored
      * Makefile.am, configure.ac, doc/Makefile.am, iface/Makefile.am,
      iface/gspn/Makefile.am, iface/gspn/common.cc,
      iface/gspn/common.hh, iface/gspn/dottyeesrg.cc,
      iface/gspn/dottygspn.cc, iface/gspn/eesrg.cc, iface/gspn/eesrg.hh,
      iface/gspn/gspn.cc, iface/gspn/gspn.hh, iface/gspn/ltlgspn.cc,
      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/formula.cc,
      src/ltlast/formula.hh, src/ltlast/multop.cc, src/ltlast/multop.hh,
      src/ltlast/predecl.hh, src/ltlast/refformula.cc,
      src/ltlast/refformula.hh, src/ltlast/unop.cc, src/ltlast/unop.hh,
      src/ltlast/visitor.hh, src/ltlenv/Makefile.am,
      src/ltlenv/defaultenv.cc, src/ltlenv/defaultenv.hh,
      src/ltlenv/environment.hh, src/ltlparse/Makefile.am,
      src/ltlparse/fmterror.cc, src/ltlparse/ltlparse.yy,
      src/ltlparse/ltlscan.ll, src/ltlparse/parsedecl.hh,
      src/ltlparse/public.hh, src/ltltest/Makefile.am,
      src/ltltest/defs.in, src/ltltest/equals.cc,
      src/ltltest/equals.test, src/ltltest/lunabbrev.test,
      src/ltltest/nenoform.test, src/ltltest/parse.test,
      src/ltltest/parseerr.test, src/ltltest/readltl.cc,
      src/ltltest/tostring.cc, src/ltltest/tostring.test,
      src/ltltest/tunabbrev.test, src/ltltest/tunenoform.test,
      src/ltlvisit/Makefile.am, src/ltlvisit/clone.cc,
      src/ltlvisit/clone.hh, src/ltlvisit/destroy.cc,
      src/ltlvisit/destroy.hh, src/ltlvisit/dotty.cc,
      src/ltlvisit/dotty.hh, src/ltlvisit/dump.cc, src/ltlvisit/dump.hh,
      src/ltlvisit/lunabbrev.cc, src/ltlvisit/lunabbrev.hh,
      src/ltlvisit/nenoform.cc, src/ltlvisit/nenoform.hh,
      src/ltlvisit/postfix.cc, src/ltlvisit/postfix.hh,
      src/ltlvisit/tostring.cc, src/ltlvisit/tostring.hh,
      src/ltlvisit/tunabbrev.cc, src/ltlvisit/tunabbrev.hh,
      src/misc/Makefile.am, src/misc/bddalloc.cc, src/misc/bddalloc.hh,
      src/misc/bddlt.hh, src/misc/hash.hh, src/misc/minato.cc,
      src/misc/minato.hh, src/misc/version.cc, src/misc/version.hh,
      src/tgba/Makefile.am, src/tgba/bdddict.cc, src/tgba/bdddict.hh,
      src/tgba/bddprint.cc, src/tgba/bddprint.hh, src/tgba/public.hh,
      src/tgba/state.hh, src/tgba/statebdd.cc, src/tgba/statebdd.hh,
      src/tgba/succiter.hh, src/tgba/succiterconcrete.cc,
      src/tgba/succiterconcrete.hh, src/tgba/tgba.cc, src/tgba/tgba.hh,
      src/tgba/tgbabddconcrete.cc, src/tgba/tgbabddconcrete.hh,
      src/tgba/tgbabddconcretefactory.cc,
      src/tgba/tgbabddconcretefactory.hh,
      src/tgba/tgbabddconcreteproduct.cc,
      src/tgba/tgbabddconcreteproduct.hh, src/tgba/tgbabddcoredata.cc,
      src/tgba/tgbabddcoredata.hh, src/tgba/tgbabddfactory.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/Makefile.am, src/tgbaalgos/dotty.cc,
      src/tgbaalgos/dotty.hh, src/tgbaalgos/dupexp.cc,
      src/tgbaalgos/dupexp.hh, src/tgbaalgos/emptinesscheck.cc,
      src/tgbaalgos/emptinesscheck.hh, src/tgbaalgos/lbtt.cc,
      src/tgbaalgos/lbtt.hh, src/tgbaalgos/ltl2tgba_fm.cc,
      src/tgbaalgos/ltl2tgba_fm.hh, src/tgbaalgos/ltl2tgba_lacim.cc,
      src/tgbaalgos/ltl2tgba_lacim.hh, src/tgbaalgos/magic.cc,
      src/tgbaalgos/magic.hh, src/tgbaalgos/reachiter.cc,
      src/tgbaalgos/reachiter.hh, src/tgbaalgos/save.cc,
      src/tgbaalgos/save.hh, 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/Makefile.am,
      src/tgbatest/bddprod.test, src/tgbatest/defs.in,
      src/tgbatest/dupexp.test, src/tgbatest/emptchk.test,
      src/tgbatest/emptchke.test, src/tgbatest/explicit.test,
      src/tgbatest/explpro2.test, src/tgbatest/explpro3.test,
      src/tgbatest/explprod.test, src/tgbatest/ltl2tgba.test,
      src/tgbatest/ltlprod.test, src/tgbatest/mixprod.test,
      src/tgbatest/readsave.test, src/tgbatest/spotlbtt.test,
      src/tgbatest/tgbaread.test, src/tgbatest/tripprod.test,
      wrap/Makefile.am, wrap/python/Makefile.am, wrap/python/buddy.i,
      wrap/python/spot.i, wrap/python/cgi/Makefile.am,
      wrap/python/cgi/ltl2tgba.in, wrap/python/tests/Makefile.am,
      wrap/python/tests/bddnqueen.py, wrap/python/tests/interdep.py,
      wrap/python/tests/ltl2tgba.py, wrap/python/tests/ltl2tgba.test,
      wrap/python/tests/ltlparse.py, wrap/python/tests/ltlsimple.py,
      wrap/python/tests/run.in: Add Copyright license.
      43a91a15
  8. 14 Nov, 2003 1 commit
  9. 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
  10. 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