40 lines
		
	
	
		
			349 B
		
	
	
	
		
			ChaiScript
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			349 B
		
	
	
	
		
			ChaiScript
		
	
	
	
	
	
load_module("reflection")
 | 
						|
 | 
						|
def deep()
 | 
						|
{
 | 
						|
  try {
 | 
						|
  } catch {
 | 
						|
 | 
						|
  } finally {
 | 
						|
    if (2)
 | 
						|
    {
 | 
						|
    }
 | 
						|
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
def func()
 | 
						|
{
 | 
						|
  deep();
 | 
						|
}
 | 
						|
 | 
						|
def doing()
 | 
						|
{
 | 
						|
  for (auto i = 0; i < 10; ++i)
 | 
						|
  {
 | 
						|
    func();
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
def while_doing()
 | 
						|
{
 | 
						|
  while (true)
 | 
						|
  {
 | 
						|
    doing();
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
auto f = fun() { while_doing(); }
 | 
						|
 | 
						|
assert_equal(get_eval_error(f).call_stack.size(), 16)
 |