setup files for lexer part
This commit is contained in:
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
.idea
|
||||
|
||||
lexer.rb
|
||||
14
README.md
14
README.md
@@ -1,3 +1,15 @@
|
||||
# parser
|
||||
|
||||
parser ba
|
||||
###Prerequisites
|
||||
|
||||
* Rexical (rex)
|
||||
|
||||
###Available commands
|
||||
|
||||
* `rake lexer` - generates `lexer.rb` file based on `specification.rex` file
|
||||
|
||||
###Testing
|
||||
|
||||
To run only `lexer` tests, execute : `rspec spec/query_lexer_spec.rb`
|
||||
|
||||
To run all tests, execute : `rake spec`
|
||||
12
Rakefile
Normal file
12
Rakefile
Normal file
@@ -0,0 +1,12 @@
|
||||
require 'rspec/core/rake_task'
|
||||
|
||||
RSpec::Core::RakeTask.new do |c|
|
||||
options = ['--color']
|
||||
options += ["--format", "documentation"]
|
||||
c.rspec_opts = options
|
||||
end
|
||||
|
||||
desc "Generate Lexer"
|
||||
task :lexer do
|
||||
`rex specification.rex -o lexer.rb`
|
||||
end
|
||||
10
spec/query_lexer_spec.rb
Normal file
10
spec/query_lexer_spec.rb
Normal file
@@ -0,0 +1,10 @@
|
||||
require './lexer'
|
||||
|
||||
class QueryLexerTester
|
||||
describe 'Testing the Lexer' do
|
||||
before do
|
||||
@evaluator = Query.new
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
17
specification.rex
Normal file
17
specification.rex
Normal file
@@ -0,0 +1,17 @@
|
||||
class Query
|
||||
macro
|
||||
|
||||
|
||||
rule
|
||||
.
|
||||
|
||||
inner
|
||||
def tokenize(code)
|
||||
scan_setup(code)
|
||||
tokens = []
|
||||
while token = next_token
|
||||
tokens << token
|
||||
end
|
||||
tokens
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user