class Mint::Parser

Defined in:

macros.cr
parser.cr
parsers/access.cr
parsers/argument.cr
parsers/array_access.cr
parsers/array_destructuring.cr
parsers/array_literal.cr
parsers/basic_expression.cr
parsers/block.cr
parsers/bool_literal.cr
parsers/call.cr
parsers/call_expression.cr
parsers/case.cr
parsers/case_branch.cr
parsers/code_block.cr
parsers/comment.cr
parsers/component.cr
parsers/connect.cr
parsers/connect_variable.cr
parsers/constant.cr
parsers/constant_access.cr
parsers/css_definition.cr
parsers/css_font_face.cr
parsers/css_keyframes.cr
parsers/css_nested_at.cr
parsers/css_selector.cr
parsers/decode.cr
parsers/destructuring.cr
parsers/directives/asset.cr
parsers/directives/documentation.cr
parsers/directives/format.cr
parsers/directives/highlight.cr
parsers/directives/inline.cr
parsers/directives/svg.cr
parsers/encode.cr
parsers/enum.cr
parsers/enum_destructuring.cr
parsers/enum_id.cr
parsers/enum_option.cr
parsers/enum_record.cr
parsers/enum_record_definition.cr
parsers/env.cr
parsers/expression.cr
parsers/for.cr
parsers/for_condition.cr
parsers/function.cr
parsers/get.cr
parsers/here_doc.cr
parsers/html_attribute.cr
parsers/html_body.cr
parsers/html_component.cr
parsers/html_element.cr
parsers/html_expression.cr
parsers/html_fragment.cr
parsers/html_style.cr
parsers/if.cr
parsers/inline_function.cr
parsers/interpolation.cr
parsers/js.cr
parsers/locale.cr
parsers/locale_key.cr
parsers/member_access.cr
parsers/module.cr
parsers/module_access.cr
parsers/negated_expression.cr
parsers/next_call.cr
parsers/number_literal.cr
parsers/operation.cr
parsers/option.cr
parsers/parenthesized_expression.cr
parsers/pipe.cr
parsers/property.cr
parsers/provider.cr
parsers/record.cr
parsers/record_definition.cr
parsers/record_definition_field.cr
parsers/record_field.cr
parsers/record_update.cr
parsers/regexp_literal.cr
parsers/return.cr
parsers/route.cr
parsers/routes.cr
parsers/spread.cr
parsers/state.cr
parsers/statement.cr
parsers/store.cr
parsers/string_literal.cr
parsers/style.cr
parsers/suite.cr
parsers/test.cr
parsers/top_level.cr
parsers/tuple_destructuring.cr
parsers/tuple_literal.cr
parsers/type.cr
parsers/type_id.cr
parsers/type_variable.cr
parsers/unary_minus.cr
parsers/use.cr
parsers/variable.cr
parsers/void.cr

Constant Summary

INVALID_VARIABLE_NAMES = ["true", "false"] of ::String
OPERATORS = {"|>" => 0, "or" => 0, "!=" => 10, "==" => 10, "<=" => 11, "<" => 11, ">=" => 11, ">" => 11, "-" => 13, "+" => 13, "*" => 14, "/" => 14, "%" => 14, "**" => 15, "&&" => 6, "||" => 5, "!" => 16}

Constructors

Class Method Summary

Instance Method Summary

Macro Summary

Constructor Detail

def self.new(input : String, file : String) #

[View source]

Class Method Detail

def self.parse(contents, file) : Ast #

[View source]
def self.parse(file) : Ast #

[View source]

Instance Method Detail

def <<(node) #

[View source]
def access(lhs : Ast::Expression) : Ast::Expression #

[View source]
def argument(parse_default_value : Bool = true) : Ast::Argument | Nil #

[View source]
def array : Ast::ArrayLiteral | Nil #

[View source]
def array_access(lhs : Ast::Expression) : Ast::Expression #

[View source]
def array_access_or_call(lhs) #

[View source]
def array_destructuring : Ast::ArrayDestructuring | Nil #

[View source]
def asset_directive : Ast::Directives::Asset | Nil #

[View source]
def ast : Mint::Ast #

[View source]
def basic_expression : Ast::Expression | Nil #

NOTE The order of the parsing is important!


[View source]
def basic_expression!(error : SyntaxError.class) : Ast::Expression #

[View source]
def block(opening_bracket : SyntaxError.class, closing_bracket : SyntaxError.class, &) #

[View source]
def block(&) #

[View source]
def bool_literal : Ast::BoolLiteral | Nil #

[View source]
def call(lhs : Ast::Expression) : Ast::Expression #

[View source]
def call_expression : Ast::CallExpression | Nil #

[View source]
def case_branch(for_css : Bool = false) : Ast::CaseBranch | Nil #

[View source]
def case_expression(for_css : Bool = false) : Ast::Case | Nil #

[View source]
def char(next_char : Char, error : SyntaxError.class) : Int32 | Nil #

[View source]
def char : Char #

[View source]
def char(error : SyntaxError.class, & : Char -> Bool) #

[View source]
def char(& : Char -> Bool) #

[View source]
def char!(next_char : Char) #

[View source]
def chars(& : Char -> Bool) #

[View source]
def chars(next_char : Char) #

[View source]
def chars(*next_chars : Char) #

[View source]
def chars_until(& : Char -> Bool) #

[View source]
def chars_until(next_char : Char) #

[View source]
def chars_until(*next_chars : Char) #

[View source]
def code_block(opening_bracket : SyntaxError.class, closing_bracket : SyntaxError.class, statement_error : SyntaxError.class = SyntaxError) : Ast::Block | Nil #

[View source]
def code_block : Ast::Block | Nil #

[View source]
def code_block_naked : Ast::Block | Nil #

[View source]
def comment : Ast::Comment | Nil #

[View source]
def component : Ast::Component | Nil #

[View source]
def connect : Ast::Connect | Nil #

[View source]
def connect_variable #

[View source]
def constant : Ast::Constant | Nil #

[View source]
def constant_access : Ast::ModuleAccess | Nil #

[View source]
def css_body #

[View source]
def css_definition : Ast::CssDefinition | Nil #

[View source]
def css_definition_or_selector #

[View source]
def css_font_face : Ast::CssFontFace | Nil #

[View source]
def css_keyframes : Ast::CssKeyframes | Nil #

[View source]
def css_nested_at : Ast::CssNestedAt | Nil #

[View source]
def css_node #

[View source]
def css_selector(only_definitions : Bool = false) : Ast::CssSelector | Nil #

[View source]
def css_selector_name : String | Nil #

[View source]
def data : Ast::Data #

[View source]
def decode : Ast::Decode | Nil #

[View source]
def destructuring : Ast::Node | Nil #

[View source]
def documentation_directive : Ast::Directives::Documentation | Nil #

[View source]
def encode : Ast::Encode | Nil #

[View source]
def enum #

[View source]
def enum_destructuring #

[View source]
def enum_id #

[View source]
def enum_id_expressions #

[View source]
def enum_option #

[View source]
def enum_record : Ast::EnumRecord | Nil #

[View source]
def enum_record_definition #

[View source]
def env : Ast::Env | Nil #

[View source]
def eof! : Nil #

[View source]
def eof? : Bool #

[View source]
def expression : Ast::Expression | Nil #

[View source]
def expression!(error : SyntaxError.class) : Ast::Expression #

[View source]
def file : String #

[View source]
def for_condition : Ast::ForCondition | Nil #

[View source]
def for_expression : Ast::For | Nil #

[View source]
def format_directive : Ast::Directives::Format | Nil #

[View source]
def function : Ast::Function | Nil #

[View source]
def gather(&) : String | Nil #

[View source]
def get : Ast::Get | Nil #

[View source]
def here_doc(with_interpolation : Bool = true) : Ast::HereDoc | Nil #

[View source]
def here_doc_part(token : String) #

[View source]
def highlight_directive : Ast::Directives::Highlight | Nil #

[View source]
def html_attribute(with_dashes : Bool = true, fixed_name : String | Nil = nil) : Ast::HtmlAttribute | Nil #

[View source]
def html_body(expected_closing_bracket : SyntaxError.class, expected_closing_tag : SyntaxError.class, tag : Ast::Variable | Ast::TypeId, with_dashes : Bool) #

[View source]
def html_component : Ast::HtmlComponent | Nil #

[View source]
def html_content #

[View source]
def html_element : Ast::HtmlElement | Nil #

[View source]
def html_expression : Ast::HtmlExpression | Nil #

[View source]
def html_fragment : Ast::HtmlFragment | Nil #

[View source]
def html_style : Ast::HtmlStyle | Nil #

[View source]
def if_expression(for_css = false) : Ast::If | Nil #

[View source]
def inline_directive : Ast::Directives::Inline | Nil #

[View source]
def inline_function : Ast::InlineFunction | Nil #

[View source]
def input : Array(Char) #

[View source]
def interpolation : Ast::Interpolation | Nil #

[View source]
def js : Ast::Js | Nil #

[View source]
def keyword(word) : Bool #

[View source]
def keyword!(word, error) : Bool #

[View source]
def keyword_ahead?(word) : Bool #

[View source]
def letters_numbers_or_dash #

[View source]
def letters_numbers_or_underscore #

[View source]
def letters_or_numbers #

[View source]
def list(terminator : Char | Nil, separator : Char, & : -> T | Nil) : Array(T) forall T #

[View source]
def locale : Ast::Locale | Nil #

[View source]
def locale_key : Ast::LocaleKey | Nil #

[View source]
def locales : Array(Mint::Ast::LocaleKey) #

[View source]
def many(parse_whitespace : Bool = true, & : -> T | Nil) : Array(T) forall T #

[View source]
def member_access : Ast::MemberAccess | Nil #

[View source]
def module_access : Ast::ModuleAccess | Nil #

[View source]
def module_definition : Ast::Module | Nil #

[View source]
def negated_expression : Ast::NegatedExpression | Nil #

[View source]
def next_call : Ast::NextCall | Nil #

[View source]
def next_char : Char #

[View source]
def not_interpolation_part(terminator : Char, stop_on_interpolation : Bool = true) : String | Nil #

[View source]
def number_literal : Ast::NumberLiteral | Nil #

[View source]
def operation(left : Ast::Expression, operator : String) : Ast::Operation #

[View source]
def operator : String | Nil #

[View source]
def option #

[View source]
def parenthesized_expression : Ast::ParenthesizedExpression | Nil #

[View source]
def position : Int32 #

[View source]
def prev_char : Char #

[View source]
def property : Ast::Property | Nil #

[View source]
def provider : Ast::Provider | Nil #

[View source]
def raise(error : SyntaxError.class, position : Int32, raw : Hash(String, T)) forall T #

[View source]
def raise(error : SyntaxError.class, position : Int32) #

[View source]
def raise(error : SyntaxError.class) #

[View source]
def record : Ast::Record | Nil #

[View source]
def record_definition : Ast::RecordDefinition | Nil #

[View source]
def record_definition_field : Ast::RecordDefinitionField | Nil #

[View source]
def record_field : Ast::RecordField | Nil #

[View source]
def record_update : Ast::RecordUpdate | Nil #

[View source]

[View source]
def regexp_literal : Ast::RegexpLiteral | Nil #

[View source]
def return_call : Ast::ReturnCall | Nil #

[View source]
def rollup_pipe(operation) : Ast::Pipe | Ast::Operation #

This method rolls an operation where the operator is "|>" into a single call. Every other operation is passed trough.


[View source]
def route : Ast::Route | Nil #

[View source]
def routes : Ast::Routes | Nil #

[View source]
def spread #

[View source]
def start(&) #

[View source]
def state : Ast::State | Nil #

[View source]
def statement : Ast::Statement | Nil #

[View source]
def step #

[View source]
def store : Ast::Store | Nil #

[View source]
def string_literal(with_interpolation : Bool = true) : Ast::StringLiteral | Nil #

[View source]
def string_literal!(error : SyntaxError.class, with_interpolation : Bool = true) : Ast::StringLiteral #

[View source]
def style : Ast::Style | Nil #

[View source]
def substring(from, to) #

Gets substring out of the original string


[View source]
def suite : Ast::Suite | Nil #

[View source]
def svg_directive : Ast::Directives::Svg | Nil #

[View source]
def test : Ast::Test | Nil #

[View source]
def top_levels : Nil #

[View source]
def track_back_whitespace : Nil #

[View source]
def tuple_destructuring : Ast::TupleDestructuring | Nil #

[View source]
def tuple_literal : Ast::TupleLiteral | Nil #

[View source]
def type : Ast::Type | Nil #

[View source]
def type!(error : SyntaxError.class) : Ast::Type #

[View source]
def type_id(error : SyntaxError.class, *, track : Bool = true) : Ast::TypeId | Nil #

[View source]
def type_id(*, track : Bool = true) : Ast::TypeId | Nil #

[View source]
def type_id!(error : SyntaxError.class, *, track : Bool = true) : Ast::TypeId #

[View source]
def type_or_type_variable #

[View source]
def type_or_type_variable!(error : SyntaxError.class) #

[View source]
def type_variable : Ast::TypeVariable | Nil #

[View source]
def unary_minus : Ast::UnaryMinus | Nil #

[View source]
def use : Ast::Use | Nil #

[View source]
def variable(track = true) : Ast::Variable | Nil #

[View source]
def variable!(error : SyntaxError.class, track = true) : Ast::Variable #

[View source]
def variable_attribute_name : Ast::Variable | Nil #

[View source]
def variable_constant : Ast::Variable | Nil #

[View source]
def variable_constant! : Ast::Variable #

[View source]
def variable_with_dashes(track = true) : Ast::Variable | Nil #

[View source]
def variable_with_dashes!(error : SyntaxError.class, track = true) : Ast::Variable #

[View source]
def void : Ast::Void | Nil #

[View source]
def whitespace : String | Nil #

[View source]
def whitespace!(error : SyntaxError.class) : String | Nil #

[View source]
def whitespace? #

[View source]

Macro Detail

macro consume_while(condition) #

[View source]
macro syntax_error(name) #

[View source]