Skip to content

Instantly share code, notes, and snippets.

@utkarshkukreti
Created November 27, 2012 18:25
Show Gist options
  • Save utkarshkukreti/bae62a61dcd31e271e96 to your computer and use it in GitHub Desktop.
Save utkarshkukreti/bae62a61dcd31e271e96 to your computer and use it in GitHub Desktop.
require "parslet"
class Parser < Parslet::Parser
def initialize
super
rule(:integer) { an_integer }
root(:integer)
end
def an_integer
match["0-9"].repeat(1).as(:integer)
end
end
class Transform < Parslet::Transform
def initialize
super
rule integer: simple(:x) do |context|
to_integer context[:x]
end
end
def to_integer(x)
x.to_i
end
end
p Transform.new.apply integer: "1"
p Parser.new.parse "1"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment