2020-01-21 12:08:37 +00:00
|
|
|
# parser
|
|
|
|
|
|
2020-01-23 19:16:16 +01:00
|
|
|
### Prerequisites
|
2020-01-23 09:05:32 +01:00
|
|
|
|
|
|
|
|
* Rexical (rex)
|
2020-01-23 19:16:16 +01:00
|
|
|
* Racc
|
2020-01-23 09:05:32 +01:00
|
|
|
|
2020-01-23 19:16:16 +01:00
|
|
|
### Available commands
|
2020-01-23 09:05:32 +01:00
|
|
|
|
|
|
|
|
* `rake lexer` - generates `lexer.rb` file based on `specification.rex` file
|
2020-01-23 19:16:16 +01:00
|
|
|
* `rake parser` - generates `parser.rb` file based on `grammar.y` file
|
|
|
|
|
* `rake generate` - generates `lexer.rb` and `parser.rb` files
|
2020-01-23 09:05:32 +01:00
|
|
|
|
2020-01-23 19:16:16 +01:00
|
|
|
### Testing
|
2020-01-23 09:05:32 +01:00
|
|
|
|
|
|
|
|
To run only `lexer` tests, execute : `rspec spec/query_lexer_spec.rb`
|
2020-01-23 19:16:16 +01:00
|
|
|
To run only `parser` tests, execute : `rspec spec/query_parser_spec.rb`
|
2020-01-23 09:05:32 +01:00
|
|
|
|
|
|
|
|
To run all tests, execute : `rake spec`
|