class

Parser

Inherits Reference / Object

Constants

LINE_RE = /^\s*--\s*name:\s*([a-z\_\?\!0-9]+)(\(.*?\)|).*?$/
NAME_HINT_RE = /^\s*--\s*name\b/
PARAM_RAW_RE = /\{\{\!(.*?)\}\}/
PARAM_RE = /\{\{(.*?)\}\}/

Constructors

new(lines : Array(String), source : String = "(unknown)")
Source

Instance methods

define_method(metadata, sql)
Source
get_metadata(meta)
Source
malformed_metadata_hint?(line)
Source
metadata?(line)

checks if the given line contains metadata example: -- name: get_users(name, surname)

Source
parse
Source
parse_sql(sql, line_index : Int32 | Nil)
Source
parse_sql(sql)
Source
raise_parse_error(message, line_index : Int32 | Nil)
Source
set_indent(sql)
Source
source_reference
Source
sql?(line)

checks for lines that is neither comment line (starts with -- ) nor whitespace

Source
validate_placeholders!(sql, line_index : Int32 | Nil)
Source

Nested types