class Arborist::ExprCallTreeController

Defined in:

expression_call_tree.cr

Constructors

Instance Method Summary

Constructor Detail

def self.new #

[View source]

Instance Method Detail

def add(pos : Int32, rule : Rule, memoized_parse_tree : MemoizedParseTree) : MemoizedParseTree #

[View source]
def apply_calls_in_call_stack : Array(ApplyCall) #

[View source]
def apply_calls_that_resulted_in_left_recursion : Array(ApplyCall) #

[View source]
def current_apply_node : ApplyCallTree | Nil #

[View source]
def current_apply_node=(current_apply_node : ApplyCallTree | Nil) #

[View source]
def current_expr_call_failed #

[View source]
def current_node : ExprCallTree | Nil #

[View source]
def current_node=(current_node : ExprCallTree | Nil) #

[View source]
def exist?(pos : Int32, rule : Rule) : Bool #

[View source]
def lookup(pos : Int32, rule : Rule) : MemoizedParseTree | Nil #

[View source]
def lookup_most_recent_rule_application_in_call_stack(rule : Rule) : ApplyCall | Nil #

returns the deepest/most-recent application of rule in the rule application stack


[View source]
def lookup_oldest_rule_application_that_resulted_in_left_recursion(rule) : ApplyCall | Nil #

returns the leftmost/earliest/oldest/shallowest application of rule in the rule application stack that resulted in left recursion


[View source]
def lookup_rule_application_in_call_stack(rule : Rule, pos : Int32) : ApplyCall | Nil #

[View source]
def most_recent_rule_application : ApplyCall | Nil #

[View source]
def pop_off_of_call_stack : ExprCall #

this assumes that popping off will work


[View source]
def push_onto_call_stack(expr_call : ExprCall) #

[View source]
def reset #

[View source]
def root : ExprCallTree | Nil #

[View source]
def root=(root : ExprCallTree | Nil) #

[View source]
def rule_in_recursion_call_stack_state : Array(Tuple(Int32, Rule)) #

returns an array of {pos, rule} pairs representing the ApplyCalls from the call stack that all resulted in left recursion


[View source]
def top_apply_call_that_resulted_in_left_recursion : ApplyCallTree | Nil #

[View source]