コード例 #1
0
def p_attribute_call(p):
    '''
	attribute_call : IDENTIFIER PERIOD attribute_call
				   | IDENTIFIER
	'''

    p[0] = symbol_coder.c_concatenate(p)
コード例 #2
0
def p_cond_ins(p):
    '''cond_ins : if
				| unless
				| while
				| case
				'''
    p[0] = symbol_coder.c_concatenate(p)
コード例 #3
0
def p_cond_ins(p):
	'''cond_ins : if
				| unless
				| while
				| case
				'''	
	p[0] = symbol_coder.c_concatenate(p)		
コード例 #4
0
def p_attribute_call(p):
	'''
	attribute_call : IDENTIFIER PERIOD attribute_call
				   | IDENTIFIER
	'''

	p[0] = symbol_coder.c_concatenate(p)
コード例 #5
0
def p_ins_single(p):
    '''ins : cmd
		   | cond_ins
		   | exception
		   | assign_value
		   | arithmetical_operation
		  '''
    p[0] = symbol_coder.c_concatenate(p)
コード例 #6
0
def p_ins_single(p):
	'''ins : cmd
		   | cond_ins
		   | exception
		   | assign_value
		   | arithmetical_operation
		  '''
	p[0] = symbol_coder.c_concatenate(p)
コード例 #7
0
def p_variable(p):
	'''variable : IDENTIFIER 
	      | instance_variable 
	      | class_variable 
	      | global_variable
	      | SELF
	      '''
	p[0] = symbol_coder.c_concatenate(p)
コード例 #8
0
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)
コード例 #9
0
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)	
コード例 #10
0
def p_variable(p):
    '''variable : IDENTIFIER 
	      | instance_variable 
	      | class_variable 
	      | global_variable
	      | SELF
	      '''
    p[0] = symbol_coder.c_concatenate(p)
コード例 #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)
コード例 #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)
コード例 #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)
コード例 #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)
コード例 #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)
コード例 #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)
コード例 #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)
コード例 #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)
コード例 #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)
コード例 #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)
コード例 #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)
コード例 #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)
コード例 #23
0
def p_assign_value(p):
    '''assign_value : value 
				    | variable
				    '''
    p[0] = symbol_coder.c_concatenate(p)
コード例 #24
0
def p_else_conditional(p):
	'''else_cond : else
			   	 |
			     '''	
	p[0] = symbol_coder.c_concatenate(p)		     
コード例 #25
0
def p_while_word(p):
	'''while_word : WHILE
				  | UNTIL
				  '''
	p[0] = symbol_coder.c_concatenate(p)			  
コード例 #26
0
def p_logical_operator(p):
    '''log_oper : AND 
				| OR
				'''
    p[0] = symbol_coder.c_concatenate(p)
コード例 #27
0
def p_array(p):
	'array : OPEN_SQT array_content CLOSE_SQT'
	p[0] = symbol_coder.c_concatenate(p)
コード例 #28
0
def p_else_conditional(p):
    '''else_cond : else
			   	 |
			     '''
    p[0] = symbol_coder.c_concatenate(p)
コード例 #29
0
def p_instance_variable(p):
	'''instance_variable : AT IDENTIFIER 
	           | AT CONSTANT'''
	p[0] = symbol_coder.c_concatenate(p)
コード例 #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)
コード例 #31
0
def p_method_s(p):
	'''method_s : EXCL_MARK
				| QU_MARK
				|
				'''
	p[0] = symbol_coder.c_concatenate(p)
コード例 #32
0
def p_pipe_params(p):
	'''pipe_params : PIPE parameter PIPE
				   '''
	p[0] = symbol_coder.c_concatenate(p)
コード例 #33
0
def p_assign_value(p):
	'''assign_value : value 
				    | variable
				    '''
	p[0] = symbol_coder.c_concatenate(p)
コード例 #34
0
def p_global_variable(p):
	'''global_variable : DOLLAR IDENTIFIER
	           | DOLLAR CONSTANT 
	           | SPECIAL_VAR'''
	p[0] = symbol_coder.c_concatenate(p) 
コード例 #35
0
def p_class_variable(p):
	'''class_variable : AT AT IDENTIFIER 
	           | AT AT CONSTANT'''
	p[0] = symbol_coder.c_concatenate(p)
コード例 #36
0
def p_instance_variable(p):
    '''instance_variable : AT IDENTIFIER 
	           | AT CONSTANT'''
    p[0] = symbol_coder.c_concatenate(p)
コード例 #37
0
def p_class_variable(p):
    '''class_variable : AT AT IDENTIFIER 
	           | AT AT CONSTANT'''
    p[0] = symbol_coder.c_concatenate(p)
コード例 #38
0
def p_method_pa_assig_end(p):
	'method_p : IDENTIFIER EQUAL assign_value'
	p[0] = symbol_coder.c_concatenate(p)
コード例 #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)
コード例 #40
0
def p_hash_key(p):
	'''hash_key : value'''
	p[0] = symbol_coder.c_concatenate(p)
コード例 #41
0
def p_while_word(p):
    '''while_word : WHILE
				  | UNTIL
				  '''
    p[0] = symbol_coder.c_concatenate(p)
コード例 #42
0
def p_hash(p):
	'hash : OPEN_BRACE hash_content CLOSE_BRACE'
	p[0] = symbol_coder.c_concatenate(p)
コード例 #43
0
def p_logical_operator(p):
	'''log_oper : AND 
				| OR
				'''
	p[0] = symbol_coder.c_concatenate(p)		
コード例 #44
0
def p_method_s(p):
    '''method_s : EXCL_MARK
				| QU_MARK
				|
				'''
    p[0] = symbol_coder.c_concatenate(p)
コード例 #45
0
def p_array(p):
    'array : OPEN_SQT array_content CLOSE_SQT'
    p[0] = symbol_coder.c_concatenate(p)
コード例 #46
0
def p_parameter_end(p):
	'''parameter : ins
				 |
				 '''
	p[0] = symbol_coder.c_concatenate(p)		
コード例 #47
0
def p_hash(p):
    'hash : OPEN_BRACE hash_content CLOSE_BRACE'
    p[0] = symbol_coder.c_concatenate(p)
コード例 #48
0
def p_hash_parameter(p):
    'hash_pr : IDENTIFIER COLON value COMMA hash_pr'
    p[0] = symbol_coder.c_concatenate(p)
コード例 #49
0
def p_hash_key(p):
    '''hash_key : value'''
    p[0] = symbol_coder.c_concatenate(p)
コード例 #50
0
def p_has_parameter_end(p):
    'hash_pr : IDENTIFIER COLON value'
    p[0] = symbol_coder.c_concatenate(p)
コード例 #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)
コード例 #52
0
def p_parameter_end(p):
    '''parameter : ins
				 |
				 '''
    p[0] = symbol_coder.c_concatenate(p)
コード例 #53
0
def p_namespace(p):
    '''
	namespace : CONSTANT COLON COLON namespace
			  | CONSTANT
	'''
    p[0] = symbol_coder.c_concatenate(p)
コード例 #54
0
def p_parameter_def(p):
    'parameter : ins COMMA parameter'
    p[0] = symbol_coder.c_concatenate(p)
コード例 #55
0
def p_global_variable(p):
    '''global_variable : DOLLAR IDENTIFIER
	           | DOLLAR CONSTANT 
	           | SPECIAL_VAR'''
    p[0] = symbol_coder.c_concatenate(p)
コード例 #56
0
def p_namespace(p):
	'''
	namespace : CONSTANT COLON COLON namespace
			  | CONSTANT
	'''
	p[0] = symbol_coder.c_concatenate(p)
コード例 #57
0
def p_pipe_params(p):
    '''pipe_params : PIPE parameter PIPE
				   '''
    p[0] = symbol_coder.c_concatenate(p)
コード例 #58
0
def p_has_parameter_end(p):
	'hash_pr : IDENTIFIER COLON value'
	p[0] = symbol_coder.c_concatenate(p)
コード例 #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)
コード例 #60
0
def p_parameter_def(p):
	'parameter : ins COMMA parameter'
	p[0] = symbol_coder.c_concatenate(p)