Module: Ruby::Rego::Parser::Helpers
- Defined in:
- lib/ruby/rego/parser.rb
Overview
Shared parsing helpers that do not depend on parser state.
Class Method Summary collapse
-
.normalize_reference_base(base) ⇒ Object
-
.precedence_of(operator) ⇒ Object
-
.variable_name_for(token) ⇒ Object
Class Method Details
.normalize_reference_base(base) ⇒ Object
173 174 175 176 177 178 179 |
# File 'lib/ruby/rego/parser.rb', line 173 def self.normalize_reference_base(base) path = [] # @type var path: Array[AST::RefArg] return [base, path] unless base.is_a?(AST::Reference) reference = base # @type var reference: AST::Reference [reference.base, reference.path.dup] end |
.precedence_of(operator) ⇒ Object
169 170 171 |
# File 'lib/ruby/rego/parser.rb', line 169 def self.precedence_of(operator) Precedence::BINARY.fetch(operator, Precedence::LOWEST) end |
.variable_name_for(token) ⇒ Object
181 182 183 184 185 186 187 188 189 190 191 |
# File 'lib/ruby/rego/parser.rb', line 181 def self.variable_name_for(token) token_type = token.type case token_type when TokenType::IDENT token.value.to_s when TokenType::UNDERSCORE "_" else IDENTIFIER_TOKEN_NAMES.fetch(token_type) { token_type.to_s.downcase } end end |