parsing - passing value down the pipe in Scala parser combinator -


i have following rules (many others obmitted clarity):

def bindrg: parser[cmd] = "bind-roaming-group" ~> name ~ bindrgbody(????) <~      exit  ^^ { case name~body => new bindroaminggroupcmd(name, body)}  def bindrgbody(name: string) = // ...  def name: parser[string] = """\s+""".r   

i want pass string value of "name" bindrgbody(????) not sure put in '????'

you use flatmap on parser "bind-roaming-group" ~> name:

def bindrg: parser[cmd] = ("bind-roaming-group" ~> name) flatmap (n => bindrgbody(n) <~ exit ^^ (b => new bindroaminggroupcmd(n, b))) 

or

def bindrg: parser[cmd] = ("bind-roaming-group" ~> name) >> (n => bindrgbody(n) <~ exit ^^ (new bindroaminggroupcmd(n, _))) 

if want shorten bit.


Comments

Popular posts from this blog

timeout - Handshake_timeout on RabbitMQ using python and pika from remote vm -

gcc - MinGW's ld cannot perform PE operations on non PE output file -

c# - Search and Add Comment with OpenXML for Word -