Moving alignment to contentshape
This commit is contained in:
		@@ -1,149 +0,0 @@
 | 
			
		||||
_lanes = {}
 | 
			
		||||
_stacks = {}
 | 
			
		||||
_aliases = {}
 | 
			
		||||
_last_name = {}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
_block_type(block_type)
 | 
			
		||||
	
 | 
			
		||||
	if block_type == null
 | 
			
		||||
		block_type = called-from[1]
 | 
			
		||||
	return block_type
 | 
			
		||||
 | 
			
		||||
_reset_last_name(block_type=null)
 | 
			
		||||
	block_type = _block_type(block_type)
 | 
			
		||||
 | 
			
		||||
	if block_type in _last_name
 | 
			
		||||
		remove(_last_name, block_type)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
_set_last_name(name, block_type=null)
 | 
			
		||||
	block_type = _block_type(block_type)
 | 
			
		||||
 | 
			
		||||
	_last_name[block_type] = name
 | 
			
		||||
 | 
			
		||||
_get_last_name(block_type)
 | 
			
		||||
	block_type = _block_type(block_type)
 | 
			
		||||
 | 
			
		||||
	if block_type in _last_name
 | 
			
		||||
		return _last_name[block_type]
 | 
			
		||||
	else 
 | 
			
		||||
		return null
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
_push_onto_stack(block, block_type=null)
 | 
			
		||||
	block_type = _block_type(block_type)
 | 
			
		||||
 | 
			
		||||
	if block_type in _stacks
 | 
			
		||||
		stack = _stacks[block_type]
 | 
			
		||||
	else
 | 
			
		||||
		stack = ()
 | 
			
		||||
	
 | 
			
		||||
	push(stack, block)
 | 
			
		||||
	_stacks[block_type] = stack
 | 
			
		||||
 | 
			
		||||
_pop_from_stack(block_type=null)
 | 
			
		||||
	block_type = _block_type(block_type)
 | 
			
		||||
 | 
			
		||||
	if block_type in _stacks
 | 
			
		||||
		stack = _stacks[block_type]
 | 
			
		||||
		b = pop(stack)
 | 
			
		||||
		if length(stack) > 0
 | 
			
		||||
			_stacks[block_type]
 | 
			
		||||
		else 
 | 
			
		||||
			remove(_stacks, block_type)
 | 
			
		||||
		return b
 | 
			
		||||
	return null
 | 
			
		||||
 | 
			
		||||
_pop_stack(block_type=null)
 | 
			
		||||
	block_type = _block_type(block_type)
 | 
			
		||||
 | 
			
		||||
	if block_type in _stacks
 | 
			
		||||
		stack = _stacks[block_type]
 | 
			
		||||
		remove(_stacks, block_type)
 | 
			
		||||
		return stack
 | 
			
		||||
	else
 | 
			
		||||
		return ()
 | 
			
		||||
		
 | 
			
		||||
_last_element_of_stack(block_type=null)
 | 
			
		||||
	block_type = _block_type(block_type)
 | 
			
		||||
	
 | 
			
		||||
	if block_type in _stacks
 | 
			
		||||
		stack = _stacks[block_type]
 | 
			
		||||
		return stack[-1]
 | 
			
		||||
	else
 | 
			
		||||
		return null
 | 
			
		||||
 | 
			
		||||
_set_lane(lane_name, value, block_type=null)
 | 
			
		||||
	block_type = _block_type(block_type)
 | 
			
		||||
 | 
			
		||||
	if block_type in _lanes
 | 
			
		||||
		lane = _lanes[block_type]
 | 
			
		||||
	else
 | 
			
		||||
		lane = {}
 | 
			
		||||
 | 
			
		||||
	if lane_name in lane
 | 
			
		||||
		stack = lane[lane_name]
 | 
			
		||||
	else
 | 
			
		||||
		stack = ()
 | 
			
		||||
 | 
			
		||||
	push(stack, value)
 | 
			
		||||
	lane[lane_name] = stack
 | 
			
		||||
	_lanes[block_type] = lane
 | 
			
		||||
	
 | 
			
		||||
_get_lane(block_type)
 | 
			
		||||
	block_type = _block_type(block_type)
 | 
			
		||||
		
 | 
			
		||||
	if block_type in _lanes
 | 
			
		||||
		return _lanes[block_type]
 | 
			
		||||
	else
 | 
			
		||||
		return {}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
_put_into_lane(key, value, block_type=null)
 | 
			
		||||
	block_type = _block_type(block_type)
 | 
			
		||||
 | 
			
		||||
	if block_type in _lanes
 | 
			
		||||
		lane = _lanes[block_type]
 | 
			
		||||
	else
 | 
			
		||||
		lane = {}
 | 
			
		||||
	
 | 
			
		||||
	lane[key] = value
 | 
			
		||||
	_lanes[block_type] = lane
 | 
			
		||||
 | 
			
		||||
_pop_lane(block_type=null)
 | 
			
		||||
	block_type = _block_type(block_type)
 | 
			
		||||
	
 | 
			
		||||
	if block_type in _lanes
 | 
			
		||||
		lane = _lanes[block_type]
 | 
			
		||||
		remove(_lanes, block_type)
 | 
			
		||||
		return lane
 | 
			
		||||
	else
 | 
			
		||||
		return {}
 | 
			
		||||
 | 
			
		||||
_set_alias(name, alias, block_type=null)
 | 
			
		||||
	block_type = _block_type(block_type)
 | 
			
		||||
	
 | 
			
		||||
	if block_type in _aliases
 | 
			
		||||
		alias_map = _aliases[block_type]	
 | 
			
		||||
	else
 | 
			
		||||
		alias_map = {}
 | 
			
		||||
		
 | 
			
		||||
	alias_map[name] = alias
 | 
			
		||||
	_aliases[block_type] = alias_map
 | 
			
		||||
	
 | 
			
		||||
_get_alias(name, block_type=null)
 | 
			
		||||
	block_type = _block_type(block_type)
 | 
			
		||||
	
 | 
			
		||||
	if block_type in _aliases
 | 
			
		||||
		alias_map = _aliases[block_type]
 | 
			
		||||
		if name in alias_map
 | 
			
		||||
			return alias_map[name]
 | 
			
		||||
		else
 | 
			
		||||
			return name
 | 
			
		||||
	else
 | 
			
		||||
		return name
 | 
			
		||||
		
 | 
			
		||||
_reset_aliases()
 | 
			
		||||
	for key in keys(_aliases)
 | 
			
		||||
		remove(_aliases, key)
 | 
			
		||||
		Reference in New Issue
	
	Block a user