class Parser

Defined in:

tren/parser.cr

Constant Summary

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

Constructors

Instance Method Summary

Constructor Detail

def self.new(lines : Array(String), source : String = "(unknown)") #

[View source]

Instance Method Detail

def define_method(metadata, sql) #

[View source]
def get_metadata(meta) #

[View source]
def malformed_metadata_hint?(line) #

[View source]
def metadata?(line) #

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


[View source]
def parse #

[View source]
def parse_sql(sql, line_index : Int32 | Nil) #

[View source]
def parse_sql(sql) #

[View source]
def raise_parse_error(message, line_index : Int32 | Nil) #

[View source]
def set_indent(sql) #

[View source]
def source_reference : String #

[View source]
def sql?(line) #

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


[View source]
def validate_placeholders!(sql, line_index : Int32 | Nil) #

[View source]