src/parser/parser.py
def p_let_declaration_list_2(p):
	"""let_declaration_list : LET declaration_list EQUALS expression SEMI"""
	p[0] = [p[2]]

	if len(p[4]) == 1:
		for declaration in p[2]:
			p[0].append(ast.Assign(name=declaration.name, value=p[4]))
	else:
		if len(p[4]) == len(p[2]):
			for declaration, value in zip(p[2], p[4]):
				p[0].append(ast.Assign(name=declaration.name, value=value))
		else:
			raise Syntax("initialized values does not match given values")
let_declaration_list : LET declaration_list EQUALS expression SEMI
let_declaration_list : LET declaration_list EQUALS expression SEMI
let_declaration_list : LET declaration_list EQUALS expression SEMI
def p_let_declaration_list_2(p):
	p[0] = [p[2]]
	if len(p[4]) == 1:
		for declaration in p[2]:
			p[0].append(ast.Assign(name=declaration.name, value=p[4]))
	else:
		if len(p[4]) == len(p[2]):
			for declaration, value in zip(p[2], p[4]):
				p[0].append(ast.Assign(name=declaration.name, value=value))
		else:
			raise Syntax("initialized values does not match given values")
def p_let_declaration_list_2 ( p ) : p [ 0 ] = [ p [ 2 ] ] if len ( p [ 4 ] ) == 1 : for declaration in p [ 2 ] : p [ 0 ] . append ( ast . Assign ( name = declaration . name , value = p [ 4 ] ) ) else : if len ( p [ 4 ] ) == len ( p [ 2 ] ) : for declaration , value in zip ( p [ 2 ] , p [ 4 ] ) : p [ 0 ] . append ( ast . Assign ( name = declaration . name , value = value ) ) else : raise Syntax ( "initialized values does not match given values" )
let_declaration_list : LET declaration_list EQUALS expression SEMI
let_declaration_list : LET declaration_list EQUALS expression SEMI
"""let_declaration_list : LET declaration_list EQUALS expression SEMI"""
p