repetition1N {qmrparser} | R Documentation |
Repeats a parser, at least once.
Description
Repeats a parser application indefinitely while it is successful. It must succeed at least once.
Usage
repetition1N(rpa,
action = function(s) list(type="repetition1N",value=s ),
error = function(p,h) list(type="repetition1N",pos=p,h=h))
Arguments
rpa |
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 success, action
gets a list with information about the node
returned by the applied parser. List length equals the number of successful repetitions.
In case of failure, parameter h
from error
gets error information returned by the first attempt of parser application.
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")
( repetition1N(symbolic())(stream) )[c("status","node")]
# fail
stream <- streamParserFromString("123 Hello world")
( repetition1N(symbolic())(stream) )[c("status","node")]