13 Commits

Author SHA1 Message Date
Guillaume Melquiond
ed5b718f17 Update keyword list. 2020-02-29 09:00:47 +01:00
Raphael Rieu-Helft
17ed127006 Add support for partial functions
Program functions can be declared as partial with "let/val partial".
Similarly to "diverges", partial code cannot be ghost, however it does not need to be
explicitly specified as partial.

Fixes #184.
2018-09-28 10:31:26 +02:00
Andrei Paskevich
9e6dacc7ca "safe clone": by default, cloned axioms become lemmas
Clone "with axiom ." or "with goal ." to change the default
("with lemma ." is also accepted, just in case).
2018-06-14 21:44:44 +02:00
Raphael Rieu-Helft
6096533200 Merge branch 'new_system' into mp
Conflicts:
	share/emacs/why3.el
	share/latex/why3lang.sty
2017-06-16 15:03:24 +02:00
Andrei Paskevich
df23906140 WhymL: break and continue
Without an argument, break and continue refer to the innermost loop.
A label put over an expression sequence starting with a loop, can be
used as an optional argument for break and continue:

  label L in
  [ghost] ["tag"] [M.begin]
    while true do
      ...
      break L
      ...
    done;
    [...]
  [end] [: unit]

In the square brackets are listed the constructions allowed between
the label declaration and the loop expression.
2017-06-16 14:49:17 +02:00
Raphael Rieu-Helft
5804ead866 Merge branch 'new_system' into mp 2017-06-09 12:38:16 +02:00
Raphael Rieu-Helft
b9633ad1f9 Merge branch 'new_system' into mp
Conflicts:
	share/emacs/why3.el
	share/vim/syntax/why3.vim
	src/mlw/compile.ml
	src/mlw/dexpr.ml
	src/parser/parser.mly
	src/parser/typing.ml
2017-06-09 12:37:50 +02:00
Andrei Paskevich
c23ddb9d68 WhyML: toplevel "import <scope>" declaration 2017-06-08 18:31:27 +02:00
Andrei Paskevich
923f35cc6f add "return" to the syntax files 2017-06-06 02:10:32 +02:00
Andrei Paskevich
e63151cf8b syntax: use "pure { term }" instead of "{| term |}"
Aesthetics is a harsh mistress.
2017-06-04 13:20:01 +02:00
Raphaël Rieu-Helft
db03d325c6 Fix unbound result 2017-03-29 17:02:46 +02:00
Andrei Paskevich
2fbef962ab slightly change coloring
- builtin Why3 connectors and parens are "Operator", not "Keyword"
- square brackets are Normal (just like other used-defined ops)
2016-12-30 02:04:31 +01:00
Andrei Paskevich
36add6167e vim-pathogen compliance
To install the Why3-related Vim files, just create a symbolic link:
  ln -s "$(why3 --print-datadir)/vim" ~/.vim/bundle/why3

Thanks to Johanness Kanig for the suggestion.
2016-10-18 11:08:55 +02:00