JS_Parser.Syntax
type annotation_type =
| Import
Import a JSIL or GIL file
*)| TopRequires
Precondition of global
*)| TopEnsures
Normal postcondition of global
*)| TopEnsuresErr
Error postcondition of global
*)| Requires
Precondition of function
*)| Ensures
Normal postcondition of function
*)| EnsuresErr
Error postcondition of function
*)| Id
Function identifier
*)| Codename
Codename
*)| Pred
Predicate
*)| OnlySpec
Specification without function body
*)| Invariant
| Lemma
| Tactic
General tactic: fold, unfold, recursive unfold, assert, flash, callspec, and many more to come...
*)| BiAbduce
Bi-abduction indicator
*)| Call
Function call with substitution
*)| JSIL_only
Function called in JSIL only
*)and exp_syntax =
| Num of float
| String of string
| Label of string * exp
| Null
| Bool of bool
| Var of var
| If of exp * exp * exp option
| While of exp * exp
| DoWhile of exp * exp
| VarDec of (var * exp option) list
| This
| Delete of exp
| Comma of exp * exp
| Unary_op of unary_op * exp
| BinOp of exp * bin_op * exp
| Access of exp * string
| Call of exp * exp list
| Assign of exp * exp
| AssignOp of exp * arith_op * exp
| FunctionExp of bool * string option * var list * exp
| Function of bool * string option * var list * exp
| New of exp * exp list
| Obj of (propname * proptype * exp) list
| Array of exp option list
| CAccess of exp * exp
| With of exp * exp
| Skip
| Throw of exp
| Return of exp option
| RegExp of string * string
| For of exp option * exp option * exp option * exp
| ForIn of exp * exp * exp
| Break of string option
| Continue of string option
| Try of exp * (string * exp) option * exp option
| Switch of exp * (switch_case * exp) list
| Debugger
| ConditionalOp of exp * exp * exp
| Block of exp list
| Script of bool * exp list
val mk_exp : exp_syntax -> Loc.t -> annotation list -> exp
val script_and_strict : exp_syntax -> bool