class Lit::Interpreter

Included Modules

Defined in:

lit/interpreter.cr

Constant Summary

BINARY_OP_TO_METHOD = {"+": "add", "-": "sub", "*": "mul", "/": "div", "%": "mod", ">": "gt", ">=": "gte", "<": "lt", "<=": "lte", "==": "eq"}

Constructors

Class Method Summary

Instance Method Summary

Instance methods inherited from module Lit::Stmt::Visitor(Bool | Float64 | Int64 | Lit::Callable | Lit::Instance | Lit::Uninitialized | String | Nil)

visit_block_stmt(stmt : Block) : T | T | T | T | T | T | T | T visit_block_stmt, visit_break_stmt(stmt : Break) : T | T | T | T | T | T | T | T visit_break_stmt, visit_expression_stmt(stmt : Expression) : T | T | T | T | T | T | T | T visit_expression_stmt, visit_function_stmt(stmt : Function) : T | T | T | T | T | T | T | T visit_function_stmt, visit_if_stmt(stmt : If) : T | T | T | T | T | T | T | T visit_if_stmt, visit_loop_stmt(stmt : Loop) : T | T | T | T | T | T | T | T visit_loop_stmt, visit_next_stmt(stmt : Next) : T | T | T | T | T | T | T | T visit_next_stmt, visit_print_stmt(stmt : Print) : T | T | T | T | T | T | T | T visit_print_stmt, visit_println_stmt(stmt : Println) : T | T | T | T | T | T | T | T visit_println_stmt, visit_return_stmt(stmt : Return) : T | T | T | T | T | T | T | T visit_return_stmt, visit_type_stmt(stmt : Type) : T | T | T | T | T | T | T | T visit_type_stmt, visit_var_stmt(stmt : Var) : T | T | T | T | T | T | T | T visit_var_stmt, visit_while_stmt(stmt : While) : T | T | T | T | T | T | T | T visit_while_stmt

Instance methods inherited from module Lit::Expr::Visitor(Bool | Float64 | Int64 | Lit::Callable | Lit::Instance | Lit::Uninitialized | String | Nil)

visit_assign_expr(expr : Assign) : T | T | T | T | T | T | T | T visit_assign_expr, visit_binary_expr(expr : Binary) : T | T | T | T | T | T | T | T visit_binary_expr, visit_call_expr(expr : Call) : T | T | T | T | T | T | T | T visit_call_expr, visit_function_expr(expr : Function) : T | T | T | T | T | T | T | T visit_function_expr, visit_get_expr(expr : Get) : T | T | T | T | T | T | T | T visit_get_expr, visit_grouping_expr(expr : Grouping) : T | T | T | T | T | T | T | T visit_grouping_expr, visit_literal_expr(expr : Literal) : T | T | T | T | T | T | T | T visit_literal_expr, visit_logical_expr(expr : Logical) : T | T | T | T | T | T | T | T visit_logical_expr, visit_self_expr(expr : Self) : T | T | T | T | T | T | T | T visit_self_expr, visit_set_expr(expr : Set) : T | T | T | T | T | T | T | T visit_set_expr, visit_string_interpolation_expr(expr : StringInterpolation) : T | T | T | T | T | T | T | T visit_string_interpolation_expr, visit_ternary_expr(expr : Ternary) : T | T | T | T | T | T | T | T visit_ternary_expr, visit_unary_expr(expr : Unary) : T | T | T | T | T | T | T | T visit_unary_expr, visit_variable_expr(expr : Variable) : T | T | T | T | T | T | T | T visit_variable_expr

Constructor Detail

def self.new #

[View source]

Class Method Detail

def self.interpret(stmts : Array(Stmt)) #

[View source]

Instance Method Detail

def argv : LitArray #

[View source]
def environment : Lit::Environment #

[View source]
def evaluate(expr : Expr) : Value #

[View source]
def execute(stmt : Stmt) : Value #

[View source]
def execute_block(stmts : Array(Stmt), environment : Environment) : Nil #

[View source]
def interpret(stmts) : Nil #

[View source]
def resolve(expr, depth) #

[View source]
def type_of(value : Value) : String #

[View source]
def visit_assign_expr(expr) : Value #

[View source]
def visit_binary_expr(expr) : Value #

[View source]
def visit_block_stmt(stmt) : Nil #

[View source]
def visit_break_stmt(stmt) : Nil #

[View source]
def visit_call_expr(expr) : Value #

[View source]
def visit_expression_stmt(stmt) : Nil #

[View source]
def visit_function_expr(expr) : Value #

[View source]
def visit_function_stmt(stmt) : Nil #

[View source]
def visit_get_expr(expr) : Value #

[View source]
def visit_grouping_expr(expr) : Value #

[View source]
def visit_if_stmt(stmt) : Nil #

[View source]
def visit_literal_expr(expr) : Value #

[View source]
def visit_logical_expr(expr) : Value #

[View source]
def visit_loop_stmt(stmt) : Nil #

[View source]
def visit_next_stmt(stmt) : Nil #

[View source]
def visit_print_stmt(stmt) : Nil #

[View source]
def visit_println_stmt(stmt) : Nil #

[View source]
def visit_return_stmt(stmt) : Nil #

[View source]
def visit_self_expr(expr) : Value #

[View source]
def visit_set_expr(expr) : Value #

[View source]
def visit_string_interpolation_expr(expr) : String #

[View source]
def visit_ternary_expr(expr) : Value #

[View source]
def visit_type_stmt(stmt) : Nil #

[View source]
def visit_unary_expr(expr) : Value #

[View source]
def visit_var_stmt(stmt) : Nil #

[View source]
def visit_variable_expr(expr) : Value #

[View source]
def visit_while_stmt(stmt) : Nil #

[View source]