|
| template<class T, TypeLike Ty> |
| detail::TargetOut< T, TypeValue< Ty >, detail::plus(D, type_dims< Ty >), P > | read (const T &target, const Ty &type, std::source_location site=std::source_location::current()) |
| | target: type, a declaration, as in read("n", int_) or read("x", int_.dim(n)).
|
| template<class T, class V> |
| detail::TargetOut< T, V, detail::plus(D, 1), P > | list (const T &target, const ListReading< V > &reading, std::source_location site=std::source_location::current()) |
| | list target: type until end, as in list("x", int_.until(0))
|
| template<class T, Operand E> |
| detail::TargetOut< T, ValueOf< E >, detail::let_depth< E, D >, P > | let (const T &target, E &&value, std::source_location site=std::source_location::current()) |
| | let target = value.
|
template<class V, std::size_t H, Presence HP, Operand E>
requires std::same_as<ValueOf<E>, V> && (detail::same_depth(detail::depth_in<E, D>, H)) |
| void | set (const Field< V, H, HP > &handle, E &&value, std::source_location site=std::source_location::current()) |
| | let handle = value, keeping the handle's type and depth: the value must have both
|
| template<class T> |
| detail::TargetOut< T, Dynamic, dynamic_depth, P > | param (const T &target, std::source_location site=std::source_location::current()) |
| | param target, a parameter without a default
|
| template<class T, Operand E> |
| detail::TargetOut< T, ValueOf< E >, detail::param_depth< E, D >, P > | param (const T &target, E &&fallback, std::source_location site=std::source_location::current()) |
| | param target = fallback.
|
| template<Operand E> |
| void | check (E &&condition, std::source_location site=std::source_location::current()) |
| | check condition
|
| template<Operand E> |
| void | check (E &&condition, std::string_view message, std::source_location site=std::source_location::current()) |
| | check condition "message"
|
| void | expect (const Strings &words, std::source_location site=std::source_location::current()) |
| | expect "word" ...
|
| void | line (PatternArg text, std::source_location site=std::source_location::current()) |
| | line "pattern"
|
| void | find (PatternArg text, std::source_location site=std::source_location::current()) |
| | find "pattern"
|
| void | skip_line (std::source_location site=std::source_location::current()) |
| | skip line
|
| template<Operand E> |
| void | skip_lines (E &&lines, std::source_location site=std::source_location::current()) |
| | skip count lines
|
| template<Operand E> |
| void | index (E &&position, std::source_location site=std::source_location::current()) |
| | index position
|
template<TypeLike Ty>
requires (type_dims<Ty> == 0) |
| NamedType< TypeValue< Ty > > | define_type (std::string_view name, const Ty &type, std::source_location site=std::source_location::current()) |
| | type name = type, a named type for declarations and captures
|
template<Operand C, class F>
requires std::invocable<F, Scope<detail::plus(D, 1), P> &> |
| std::invoke_result_t< F, Scope< detail::plus(D, 1), P > & > | repeat (C &×, F &&body, std::source_location site=std::source_location::current()) |
| | repeat count { body }; returns the result of the body
|
template<class F>
requires std::invocable<F, Scope<detail::plus(D, 1), P> &> |
| std::invoke_result_t< F, Scope< detail::plus(D, 1), P > & > | repeat_until_eof (F &&body, std::source_location site=std::source_location::current()) |
| | repeat until eof { body }; returns the result of the body
|
template<class F>
requires std::invocable<F, Scope<detail::plus(D, 1), P> &> |
| std::invoke_result_t< F, Scope< detail::plus(D, 1), P > & > | repeat_until (const Strings &terminators, F &&body, std::source_location site=std::source_location::current()) |
| | repeat until "line" ... { body }; returns the result of the body
|
template<class F>
requires std::invocable<F, Scope<detail::plus(D, 1), P> &> |
| std::invoke_result_t< F, Scope< detail::plus(D, 1), P > & > | repeat_until (const Strings &terminators, const UntilOptions &options, F &&body, std::source_location site=std::source_location::current()) |
| | repeat until "line" ... store target { body }; returns the result of the body
|
template<class F>
requires std::invocable<F, Arms<D, P> &> |
| std::invoke_result_t< F, Arms< D, P > & > | sections (F &&body, std::source_location site=std::source_location::current()) |
| | sections { arms }; returns the result of the body, which receives the Arms
|
template<class F>
requires std::invocable<F, Arms<D, P> &> |
| std::invoke_result_t< F, Arms< D, P > & > | sections (const SectionsOptions &options, F &&body, std::source_location site=std::source_location::current()) |
| | sections until ... store ... skip other { arms }
|
template<class F>
requires std::invocable<F, Arms<D, P> &> |
| std::invoke_result_t< F, Arms< D, P > & > | sections (std::initializer_list< SectionsOptions > clauses, F &&body, std::source_location site=std::source_location::current()) |
| | sections with several clauses in order, as in {{.until = "END"}, {.until = "x"}}
|
template<Operand C, class F>
requires std::invocable<F, Scope<D, Presence::Maybe> &> |
| If< D, P, std::invoke_result_t< F, Scope< D, Presence::Maybe > & > > | if_ (C &&condition, F &&body, std::source_location site=std::source_location::current()) |
| | if condition { body }; else_if, else_ and else_read_if on the result continue it
|
| template<CaptureType Ty> |
| Field< CaptureValue< Ty >, D, P > | capture (std::string_view name, const Ty &type, std::source_location site=std::source_location::current()) |
| | A capture for patterns, {name:type}, in the scope of this block.
|
| template<CaptureType Ty> |
| Field< CaptureValue< Ty >, D, Presence::Maybe > | optional_capture (std::string_view name, const Ty &type, std::source_location site=std::source_location::current()) |
| | A capture for patterns whose entry may be undefined.
|
template<class H>
requires detail::IsField<H>::value |
| H | forward (std::string_view name, std::source_location site=std::source_location::current()) |
| | A handle of type H for a name that a later statement defines, as in forward<Field<std::int64_t>>("n").
|
| DynField | undefined (std::string_view name, std::source_location site=std::source_location::current()) |
| | A handle for a name that nothing defines, for defined(x).
|
| Record | forward_record (std::string_view each, std::string_view list, std::source_location site=std::source_location::current()) |
| | A record handle for a repeat that comes later, with the names each and list; record_as in the repeat binds it.
|
| Record | record () const |
| | The records of the innermost repeat.
|
| void | each_name (std::string_view name, std::source_location site=std::source_location::current()) |
| | Name the current record of the innermost repeat, each name.
|
| void | as_name (std::string_view name, std::source_location site=std::source_location::current()) |
| | Name the list of the innermost repeat, as name.
|
| void | record_as (const Record &record, std::source_location site=std::source_location::current()) |
| | Bind a record from forward_record to the innermost repeat.
|