Add "drop" grammar keyword to drop patterns
This commit is contained in:
parent
f67dd62b20
commit
db70f8b94d
@ -40,6 +40,9 @@ module Imbecile
|
|||||||
end
|
end
|
||||||
@tokens << Token.new(name, pattern, @tokens.size)
|
@tokens << Token.new(name, pattern, @tokens.size)
|
||||||
token_names << name
|
token_names << name
|
||||||
|
elsif line =~ /^\s*drop\s+(\S+)$/
|
||||||
|
pattern = $1
|
||||||
|
@tokens << Token.new(nil, pattern, @tokens.size)
|
||||||
else
|
else
|
||||||
raise Error.new("Unexpected input on line #{line_number}: #{line}")
|
raise Error.new("Unexpected input on line #{line_number}: #{line}")
|
||||||
end
|
end
|
||||||
|
@ -103,6 +103,19 @@ EOF
|
|||||||
token foo
|
token foo
|
||||||
token bar
|
token bar
|
||||||
token WS \\s+
|
token WS \\s+
|
||||||
|
EOF
|
||||||
|
end
|
||||||
|
|
||||||
|
it "allows dropping a matched pattern" do
|
||||||
|
expected = [
|
||||||
|
["foo", "foo"],
|
||||||
|
[nil, " \t"],
|
||||||
|
["bar", "bar"],
|
||||||
|
]
|
||||||
|
expect(run(<<EOF, "foo \tbar")).to eq expected
|
||||||
|
token foo
|
||||||
|
token bar
|
||||||
|
drop \\s+
|
||||||
EOF
|
EOF
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user