Module: Dwarves::Parser::BasicRules

Includes:
Parslet
Included in:
V4Parser
Defined in:
lib/dwarves/parser/basic_rules.rb

Overview

Shared rules common to many parsers.

These can be directly included in your parser class, like so

Examples:

class SomeParser < Parslet::Parser
  include Dwarves::Parser::BasicRules

  # ...
end

Instance Method Summary collapse

Instance Method Details

#colonObject



22
# File 'lib/dwarves/parser/basic_rules.rb', line 22

rule(:colon) { str ":" }

#digitObject



42
# File 'lib/dwarves/parser/basic_rules.rb', line 42

rule(:digit) { match("[0-9]").repeat 1 }

#filenameObject



68
69
70
# File 'lib/dwarves/parser/basic_rules.rb', line 68

rule :filename do
  match('[^\s]').repeat
end

#hexadecimalObject



63
64
65
# File 'lib/dwarves/parser/basic_rules.rb', line 63

rule :hexadecimal do
  str("0x") >> (match("[a-f]") | match("[0-9]")).repeat
end

#integerObject



45
# File 'lib/dwarves/parser/basic_rules.rb', line 45

rule(:integer) { digit.repeat }

#lparenObject



54
# File 'lib/dwarves/parser/basic_rules.rb', line 54

rule(:lparen) { str "(" }

#newlineObject



31
# File 'lib/dwarves/parser/basic_rules.rb', line 31

rule(:newline) { match('\n').repeat 1 }

#newlinesObject



34
# File 'lib/dwarves/parser/basic_rules.rb', line 34

rule(:newlines) { newline.repeat }

#rparenObject



57
# File 'lib/dwarves/parser/basic_rules.rb', line 57

rule(:rparen) { str ")" }

#semicolonObject



60
# File 'lib/dwarves/parser/basic_rules.rb', line 60

rule(:semicolon) { str ";" }

#separatorObject Also known as: _



37
# File 'lib/dwarves/parser/basic_rules.rb', line 37

rule(:separator) { space? | space }

#spaceObject



25
# File 'lib/dwarves/parser/basic_rules.rb', line 25

rule(:space) { match('\s').repeat 1 }

#space?Object



28
# File 'lib/dwarves/parser/basic_rules.rb', line 28

rule(:space?) { space.maybe }

#wordObject



48
# File 'lib/dwarves/parser/basic_rules.rb', line 48

rule(:word) { match('[a-zA-Z\._0-9]').repeat 1 }

#wordsObject



51
# File 'lib/dwarves/parser/basic_rules.rb', line 51

rule(:words) { word >> (separator >> word).repeat }