def p_attribute_call(p):
    '''
	attribute_call : IDENTIFIER PERIOD attribute_call
				   | IDENTIFIER
	'''

    p[0] = symbol_coder.c_concatenate(p)
def p_cond_ins(p):
    '''cond_ins : if
				| unless
				| while
				| case
				'''
    p[0] = symbol_coder.c_concatenate(p)
def p_cond_ins(p):
	'''cond_ins : if
				| unless
				| while
				| case
				'''	
	p[0] = symbol_coder.c_concatenate(p)		
def p_attribute_call(p):
	'''
	attribute_call : IDENTIFIER PERIOD attribute_call
				   | IDENTIFIER
	'''

	p[0] = symbol_coder.c_concatenate(p)
def p_ins_single(p):
    '''ins : cmd
		   | cond_ins
		   | exception
		   | assign_value
		   | arithmetical_operation
		  '''
    p[0] = symbol_coder.c_concatenate(p)
def p_ins_single(p):
	'''ins : cmd
		   | cond_ins
		   | exception
		   | assign_value
		   | arithmetical_operation
		  '''
	p[0] = symbol_coder.c_concatenate(p)
def p_variable(p):
	'''variable : IDENTIFIER 
	      | instance_variable 
	      | class_variable 
	      | global_variable
	      | SELF
	      '''
	p[0] = symbol_coder.c_concatenate(p)
def p_array_content(p):
    '''array_content : cmd COMMA array_content
					 | cmd
					 | assign_value COMMA array_content
					 | assign_value
					 |
					 '''
    p[0] = symbol_coder.c_concatenate(p)
def p_array_content(p):
	'''array_content : cmd COMMA array_content
					 | cmd
					 | assign_value COMMA array_content
					 | assign_value
					 |
					 '''
	p[0] = symbol_coder.c_concatenate(p)	
Ejemplo n.º 10
0
def p_variable(p):
    '''variable : IDENTIFIER 
	      | instance_variable 
	      | class_variable 
	      | global_variable
	      | SELF
	      '''
    p[0] = symbol_coder.c_concatenate(p)
Ejemplo n.º 11
0
def p_arithmetical_operation(p):
    '''
	arithmetical_operation : cmd OPERATOR arithmetical_operation
						   | assign_value OPERATOR arithmetical_operation
						   | cmd OPERATOR assign_value
						   | assign_value OPERATOR cmd 
						   | cmd OPERATOR cmd
						   | assign_value OPERATOR assign_value
	'''
    p[0] = symbol_coder.c_concatenate(p)
Ejemplo n.º 12
0
def p_arithmetical_operation(p):
	'''
	arithmetical_operation : cmd OPERATOR arithmetical_operation
						   | assign_value OPERATOR arithmetical_operation
						   | cmd OPERATOR assign_value
						   | assign_value OPERATOR cmd 
						   | cmd OPERATOR cmd
						   | assign_value OPERATOR assign_value
	'''
	p[0] = symbol_coder.c_concatenate(p)
Ejemplo n.º 13
0
def p_operator(p):
    '''operator : EQUAL EQUAL
				| EXCL_MARK EQUAL
				| GT
				| LT
				| GT EQUAL
				| LT EQUAL
				| GT EQUAL LT
				| EQUAL EQUAL EQUAL
				'''
    p[0] = symbol_coder.c_concatenate(p)
Ejemplo n.º 14
0
def p_operator(p):
	'''operator : EQUAL EQUAL
				| EXCL_MARK EQUAL
				| GT
				| LT
				| GT EQUAL
				| LT EQUAL
				| GT EQUAL LT
				| EQUAL EQUAL EQUAL
				'''
	p[0] = symbol_coder.c_concatenate(p)
Ejemplo n.º 15
0
def p_assig(p):
	'''assig : variable EQUAL cmd
			 | variable EQUAL assign_value
			 | CONSTANT EQUAL cmd
			 | CONSTANT EQUAL assign_value
			 | variable PERIOD attribute_call EQUAL cmd
			 | variable PERIOD attribute_call EQUAL assign_value
			 | variable EQUAL variable PERIOD attribute_call 
			 | variable PERIOD attribute_call EQUAL variable PERIOD attribute_call 
	'''

	p[0] = symbol_coder.c_concatenate(p)
Ejemplo n.º 16
0
def p_hash_content(p):
	'''hash_content : hash_key EQUAL LT cmd COMMA hash_content
					 | IDENTIFIER COLON cmd COMMA hash_content
					 | hash_key EQUAL LT assign_value COMMA hash_content
					 | IDENTIFIER COLON assign_value COMMA hash_content
					 | hash_key EQUAL LT cmd
					 | IDENTIFIER COLON cmd
					 | hash_key EQUAL LT assign_value
					 | IDENTIFIER COLON assign_value
					 |
					 '''
	p[0] = symbol_coder.c_concatenate(p)
Ejemplo n.º 17
0
def p_hash_content(p):
    '''hash_content : hash_key EQUAL LT cmd COMMA hash_content
					 | IDENTIFIER COLON cmd COMMA hash_content
					 | hash_key EQUAL LT assign_value COMMA hash_content
					 | IDENTIFIER COLON assign_value COMMA hash_content
					 | hash_key EQUAL LT cmd
					 | IDENTIFIER COLON cmd
					 | hash_key EQUAL LT assign_value
					 | IDENTIFIER COLON assign_value
					 |
					 '''
    p[0] = symbol_coder.c_concatenate(p)
Ejemplo n.º 18
0
def p_assig(p):
    '''assig : variable EQUAL cmd
			 | variable EQUAL assign_value
			 | CONSTANT EQUAL cmd
			 | CONSTANT EQUAL assign_value
			 | variable PERIOD attribute_call EQUAL cmd
			 | variable PERIOD attribute_call EQUAL assign_value
			 | variable EQUAL variable PERIOD attribute_call 
			 | variable PERIOD attribute_call EQUAL variable PERIOD attribute_call 
	'''

    p[0] = symbol_coder.c_concatenate(p)
Ejemplo n.º 19
0
def p_value(p):
	'''
	value : FLOAT 
		 | STRING 
		 | FIXNUM 
		 | SYMBOL 
		 | NIL 
		 | TRUE 
		 | FALSE
		 | SPECIAL_NUM 
		 | array
		 | hash
	'''
	p[0] = symbol_coder.c_concatenate(p)
Ejemplo n.º 20
0
def p_value(p):
    '''
	value : FLOAT 
		 | STRING 
		 | FIXNUM 
		 | SYMBOL 
		 | NIL 
		 | TRUE 
		 | FALSE
		 | SPECIAL_NUM 
		 | array
		 | hash
	'''
    p[0] = symbol_coder.c_concatenate(p)
Ejemplo n.º 21
0
def p_symbol_ruby(p):
    '''symbol_ruby : method symbol_ruby
				   | new_cmd symbol_ruby
				   | class symbol_ruby
				   | module symbol_ruby
				   | __FILE__ symbol_ruby
				   | __LINE__ symbol_ruby
				   | __DIR__ symbol_ruby
				   | method
				   | new_cmd
				   | class
				   | module
				   | __LINE__
				   | __DIR__
				   | __FILE__
	'''
    p[0] = symbol_coder.c_concatenate(p)
Ejemplo n.º 22
0
def p_symbol_ruby(p):

	'''symbol_ruby : method symbol_ruby
				   | new_cmd symbol_ruby
				   | class symbol_ruby
				   | module symbol_ruby
				   | __FILE__ symbol_ruby
				   | __LINE__ symbol_ruby
				   | __DIR__ symbol_ruby
				   | method
				   | new_cmd
				   | class
				   | module
				   | __LINE__
				   | __DIR__
				   | __FILE__
	'''
	p[0] = symbol_coder.c_concatenate(p)
Ejemplo n.º 23
0
def p_assign_value(p):
    '''assign_value : value 
				    | variable
				    '''
    p[0] = symbol_coder.c_concatenate(p)
Ejemplo n.º 24
0
def p_else_conditional(p):
	'''else_cond : else
			   	 |
			     '''	
	p[0] = symbol_coder.c_concatenate(p)		     
Ejemplo n.º 25
0
def p_while_word(p):
	'''while_word : WHILE
				  | UNTIL
				  '''
	p[0] = symbol_coder.c_concatenate(p)			  
Ejemplo n.º 26
0
def p_logical_operator(p):
    '''log_oper : AND 
				| OR
				'''
    p[0] = symbol_coder.c_concatenate(p)
Ejemplo n.º 27
0
def p_array(p):
	'array : OPEN_SQT array_content CLOSE_SQT'
	p[0] = symbol_coder.c_concatenate(p)
Ejemplo n.º 28
0
def p_else_conditional(p):
    '''else_cond : else
			   	 |
			     '''
    p[0] = symbol_coder.c_concatenate(p)
Ejemplo n.º 29
0
def p_instance_variable(p):
	'''instance_variable : AT IDENTIFIER 
	           | AT CONSTANT'''
	p[0] = symbol_coder.c_concatenate(p)
Ejemplo n.º 30
0
def p_method_pa_assig_cont(p):
	'method_p : IDENTIFIER EQUAL assign_value COMMA method_p'
	p[0] = symbol_coder.c_concatenate(p)
Ejemplo n.º 31
0
def p_method_s(p):
	'''method_s : EXCL_MARK
				| QU_MARK
				|
				'''
	p[0] = symbol_coder.c_concatenate(p)
Ejemplo n.º 32
0
def p_pipe_params(p):
	'''pipe_params : PIPE parameter PIPE
				   '''
	p[0] = symbol_coder.c_concatenate(p)
Ejemplo n.º 33
0
def p_assign_value(p):
	'''assign_value : value 
				    | variable
				    '''
	p[0] = symbol_coder.c_concatenate(p)
Ejemplo n.º 34
0
def p_global_variable(p):
	'''global_variable : DOLLAR IDENTIFIER
	           | DOLLAR CONSTANT 
	           | SPECIAL_VAR'''
	p[0] = symbol_coder.c_concatenate(p) 
Ejemplo n.º 35
0
def p_class_variable(p):
	'''class_variable : AT AT IDENTIFIER 
	           | AT AT CONSTANT'''
	p[0] = symbol_coder.c_concatenate(p)
Ejemplo n.º 36
0
def p_instance_variable(p):
    '''instance_variable : AT IDENTIFIER 
	           | AT CONSTANT'''
    p[0] = symbol_coder.c_concatenate(p)
Ejemplo n.º 37
0
def p_class_variable(p):
    '''class_variable : AT AT IDENTIFIER 
	           | AT AT CONSTANT'''
    p[0] = symbol_coder.c_concatenate(p)
Ejemplo n.º 38
0
def p_method_pa_assig_end(p):
	'method_p : IDENTIFIER EQUAL assign_value'
	p[0] = symbol_coder.c_concatenate(p)
Ejemplo n.º 39
0
def p_if_else_simple(p):
    '''if : condition QU_MARK cmd COLON cmd
		  | condition QU_MARK assign_value COLON assign_value'''
    p[0] = symbol_coder.c_concatenate(p)
Ejemplo n.º 40
0
def p_hash_key(p):
	'''hash_key : value'''
	p[0] = symbol_coder.c_concatenate(p)
Ejemplo n.º 41
0
def p_while_word(p):
    '''while_word : WHILE
				  | UNTIL
				  '''
    p[0] = symbol_coder.c_concatenate(p)
Ejemplo n.º 42
0
def p_hash(p):
	'hash : OPEN_BRACE hash_content CLOSE_BRACE'
	p[0] = symbol_coder.c_concatenate(p)
Ejemplo n.º 43
0
def p_logical_operator(p):
	'''log_oper : AND 
				| OR
				'''
	p[0] = symbol_coder.c_concatenate(p)		
Ejemplo n.º 44
0
def p_method_s(p):
    '''method_s : EXCL_MARK
				| QU_MARK
				|
				'''
    p[0] = symbol_coder.c_concatenate(p)
Ejemplo n.º 45
0
def p_array(p):
    'array : OPEN_SQT array_content CLOSE_SQT'
    p[0] = symbol_coder.c_concatenate(p)
Ejemplo n.º 46
0
def p_parameter_end(p):
	'''parameter : ins
				 |
				 '''
	p[0] = symbol_coder.c_concatenate(p)		
Ejemplo n.º 47
0
def p_hash(p):
    'hash : OPEN_BRACE hash_content CLOSE_BRACE'
    p[0] = symbol_coder.c_concatenate(p)
Ejemplo n.º 48
0
def p_hash_parameter(p):
    'hash_pr : IDENTIFIER COLON value COMMA hash_pr'
    p[0] = symbol_coder.c_concatenate(p)
Ejemplo n.º 49
0
def p_hash_key(p):
    '''hash_key : value'''
    p[0] = symbol_coder.c_concatenate(p)
Ejemplo n.º 50
0
def p_has_parameter_end(p):
    'hash_pr : IDENTIFIER COLON value'
    p[0] = symbol_coder.c_concatenate(p)
Ejemplo n.º 51
0
def p_if_else_simple(p):
	'''if : condition QU_MARK cmd COLON cmd
		  | condition QU_MARK assign_value COLON assign_value'''
	p[0] = symbol_coder.c_concatenate(p)
Ejemplo n.º 52
0
def p_parameter_end(p):
    '''parameter : ins
				 |
				 '''
    p[0] = symbol_coder.c_concatenate(p)
Ejemplo n.º 53
0
def p_namespace(p):
    '''
	namespace : CONSTANT COLON COLON namespace
			  | CONSTANT
	'''
    p[0] = symbol_coder.c_concatenate(p)
Ejemplo n.º 54
0
def p_parameter_def(p):
    'parameter : ins COMMA parameter'
    p[0] = symbol_coder.c_concatenate(p)
Ejemplo n.º 55
0
def p_global_variable(p):
    '''global_variable : DOLLAR IDENTIFIER
	           | DOLLAR CONSTANT 
	           | SPECIAL_VAR'''
    p[0] = symbol_coder.c_concatenate(p)
Ejemplo n.º 56
0
def p_namespace(p):
	'''
	namespace : CONSTANT COLON COLON namespace
			  | CONSTANT
	'''
	p[0] = symbol_coder.c_concatenate(p)
Ejemplo n.º 57
0
def p_pipe_params(p):
    '''pipe_params : PIPE parameter PIPE
				   '''
    p[0] = symbol_coder.c_concatenate(p)
Ejemplo n.º 58
0
def p_has_parameter_end(p):
	'hash_pr : IDENTIFIER COLON value'
	p[0] = symbol_coder.c_concatenate(p)
Ejemplo n.º 59
0
def p_method_pa_assig_cont(p):
    'method_p : IDENTIFIER EQUAL assign_value COMMA method_p'
    p[0] = symbol_coder.c_concatenate(p)
Ejemplo n.º 60
0
def p_parameter_def(p):
	'parameter : ins COMMA parameter'
	p[0] = symbol_coder.c_concatenate(p)