ISLa 1.9.1
[1.9.1] - 2022-11-08
Changed
- Bug fix: Python extension files could not use local definitions before (e.g., helper
functions); this is fixed now. - Buf fix: Epsilon productions are correctly processed in
unparse_grammar.
[1.9.0] - 2022-11-08
Added
-
It is now possible to extend ISLa with custom structural or semantic predicates when
using the CLI (this concernsisla solve,isla parse,isla check,isla fuzz,
isla mutate,isla find, andisla mutate) by passing a Python file as input
that contains a functionpredicates() -> typing.Set[isla.language.StructuralPredicate | isla.language.SemanticPredicate]
Additionally or alternatively, that file may define a variable
grammaror a function
grammar()specifying the grammar of the language under test. This behavior, already
implemented in previous ISLa versions (for the variable declaration, see "Changed"),
is unaffected by the predicate extension feature.
Changed
- In Python extension files, grammars may alternatively be defined as the return
value of a functiondef grammar() -> Dict[str, List[str]]instead of an assignment
to a variablegrammar. This is the preferred style; the variable assignment may get
deprecated in the future.