Contains line-based parsing primitives.
- merge_lines(+Lines, -Codes) is det
- Merges list of lines into
a flat code list.
- indent// is semidet
- Recognizes normal indent which
is a tab or 4 spaces.
- non_empty_line(-Codes)// is semidet
- Single non-empty line ending with newline
- discard_to_line_end// is det
- Discards zero or more symbol
codes untill the first line
end or eos is reached.
- empty_lines// is det
- List of consequtive empty lines.
Consumes as many empty lines as
- empty_line// is semidet
- Recognizes a single empty line.
- lookahead(?Code)// is semidet
- Looks ahead a single symbol code.
- string_limit(-Codes, +Limit)// is multi
- Same as string//1 but with
a length limit.
- inline_string(-Codes)// is multi
- Takes as few symbol codes as possible
up to line end.
- lookahead_ln_or_eos// is semidet
- Looks ahead a line end or
end-of-stream. Puts back
when a line end is recognized.
- lookahead_ln// is semidet
- Looks ahead a line end. Puts
\n when it is recognized.
- ln_or_eos// is semidet
- Recognizes either a line end
- ln// is semidet
- Recognizes line ending.