Skip to content

Instantly share code, notes, and snippets.

@pprince
Last active March 30, 2016 14:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pprince/f0b0f75ead814691a86854444a6bf184 to your computer and use it in GitHub Desktop.
Save pprince/f0b0f75ead814691a86854444a6bf184 to your computer and use it in GitHub Desktop.
grammar STRING {
proto token TOP {*}
token TOP { '"' ( <ESCAPE> | <-["]> )* '"' }
token TOP { "'" ( <ESCAPE> | <-[']> )* "'" }
token ESCAPE { "\\" <( "\\" | "'" | '"' )> }
}
class STRING {
method TOP ($/) { make [~] $0.map(-> $/ { $<ESCAPE>.made || $() }) }
method ESCAPE ($/) { make $() }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment