repetition0N {qmrparser} | R Documentation |
Repeats one parser
Description
Repeats a parser indefinitely, while it succeeds. It will return an empty token if the parser never succeeds,
Number of repetitions may be zero.
Usage
repetition0N(rpa0,
action = function(s) list(type="repetition0N",value=s ),
error = function(p,h) list(type="repetition0N",pos=p,h=h))
Arguments
rpa0 |
parse to be applied iteratively |
action |
Function to be executed if recognition succeeds. It takes as input parameters information derived from parsers involved as parameters |
error |
Function to be executed if recognition does not succeed. I takes two parameters:
|
Details
In case of at least one success, action
gets the node
returned by the parser repetition1N
after applying the parser to be repeated. Otherwise, it gets the node
corresponding to token empty
: list(type="empty" ,value="")
Functionerror
is never called. It is defined as parameter for the sake of homogeneity with the rest of functions.
Value
Anonymous functions, returning a list.
function(stream)
–> list(status,node,stream)
From these input parameters, an anonymous function is constructed. This function admits just one parameter, stream, with streamParser
class, and returns a three-field list:
status
"ok" or "fail"
node
With
action
orerror
function output, depending on the casestream
With information about the input, after success or failure in recognition
Examples
# ok
stream <- streamParserFromString("Hello world")
( repetition0N(symbolic())(stream) )[c("status","node")]
# ok
stream <- streamParserFromString("123 Hello world")
( repetition0N(symbolic())(stream) )[c("status","node")]