setup files for lexer part

This commit is contained in:
Bilal Catic
2020-01-23 09:05:32 +01:00
parent b26d697c6e
commit c83a249c04
5 changed files with 55 additions and 1 deletions

3
.gitignore vendored Normal file
View File

@@ -0,0 +1,3 @@
.idea
lexer.rb

View File

@@ -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
View 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
View 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
View 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