This module implements syntax analysis and top-level parsing of type/term quotations into internal types/terms. The syntax analysis functions take a list of lexical tokens as their source, and return a pretype/preterm that gets passed on to type analysis. Lexical analysis is implemented in the 'Lexer' module, and type analsyis (actually common to parsing and printing) is implemented in the 'TypeAnal' module.
Type | Description |
Function or value | Description |
Full Usage:
(/!) parse_fn msg src
Parameters:
'a -> 'b
msg : string
src : 'a
Returns: 'b
|
|
Full Usage:
parse_fn /|/! err_fn
Parameters:
'a -> 'b * 'a
err_fn : 'a -> string
Returns: 'a -> 'b * 'a
|
|
Full Usage:
build_infix_expr mk_bin_fn ys
Parameters:
'a * 'b * 'b -> 'b
ys : ('a, 'b)infix_elem list
Returns: 'b * ('a, 'b)infix_elem list
|
|
Full Usage:
build_revpolish (form, name_fn) expr0 fexprs
Parameters:
string
name_fn : 'a -> string
expr0 : 'b
fexprs : (('a * 'c * assochand) * 'b) list
Returns: ('a, 'b)infix_elem list
|
|
Full Usage:
build_revpolish_step (form, name_fn) (elems, fnhs) (arg5, expr)
Parameters:
string
name_fn : 'a -> string
elems : ('a, 'b)infix_elem list
fnhs : ('a * 'c * assochand) list
arg4 : 'a * 'c * assochand
expr : 'b
Returns: ('a, 'b)infix_elem list * ('a * 'c * assochand) list
|
|
Full Usage:
early_resword_err rws item
Parameters:
string list
item : unit -> string
Returns: token list -> string
|
|
Full Usage:
end_of_qtn_err items
Parameters:
(unit -> string) list
Returns: token list -> string
|
|
Full Usage:
expand_hol_quotation x
Parameters:
string
Returns: string
|
|
Full Usage:
hit_const_err eqkwd items
Parameters:
bool
items : (unit -> string) list
Returns: token list -> string
|
|
Full Usage:
hit_infix_err items
Parameters:
(unit -> string) list
Returns: token list -> string
|
|
Full Usage:
hit_numeral_err items
Parameters:
(unit -> string) list
Returns: token list -> string
|
|
Full Usage:
hit_prefix_err items
Parameters:
(unit -> string) list
Returns: token list -> string
|
|
Full Usage:
hit_resword_err rws context
Parameters:
string list
context : unit -> string
Returns: token list -> string
|
|
Full Usage:
hit_resword_instead_err rws items
Parameters:
string list
items : (unit -> string) list
Returns: token list -> string
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Full Usage:
leading_term_reswords ()
Parameters:
unit
Returns: string list
|
|
Full Usage:
leading_type_reswords
Returns: string list
|
|
Full Usage:
no_close_err (rw1, rw2)
Parameters:
string
rw2 : string
Returns: token list -> string
|
|
|
|
Full Usage:
ored items
Parameters:
(unit -> string) list
Returns: unit -> string
|
|
|
|
|
|
Full Usage:
parse_infix_expr (form, name_fn) (parse_fn, parse_op_fn, mk_bin_fn) e0 src
Parameters:
string
name_fn : 'a -> string
parse_fn : token list -> 'b * token list
parse_op_fn : token list -> ('a * 'c * assochand) * token list
mk_bin_fn : 'a * 'b * 'b -> 'b
e0 : 'b
src : token list
Returns: 'b * token list
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This takes a string and parses it into an internal term. The type analysis stage first detypes the preterm before inferring types (in 'resolve_preterm'), since the syntax analysis stage gives all variables and constants the null pretype. Note that type inference is capable of handling overloaded variables.
|
|
|
Full Usage:
skip_space x i
Parameters:
string
i : int
Returns: int
|
|
Full Usage:
string_tail x i
Parameters:
string
i : int
Returns: string
|
|
Full Usage:
syntax_err x
Parameters:
string
Returns: 'a
|
|
|
|