bug of ifstatement:

if a:
	a = 1

a = 1
bug of StatementList: could not parse correctly:

if a:
	a = 1
a = 1

try:
	a = 1
except:
	b = 1
quit the inheritance of Lexer because Lexer is Lexical analyser.
implemented because this code would be parsed: a = 1 if a else 2
fix bug of StatementList

if a: a = 1
a = 2

if a:
	a = 1
	b = 1
codegen function has responsibility only for generating javascript.
one function has only one duty
bug of new line. would parse this:

if a: a = 1
a = 2

if a:
    a = 1
    
    a = 2
make variable starting with __ reserved ident and would parse this:

for k, v in a = {a: 2}:
    v = 1

for k, v in {a: 2}:
    v = 1
refactoring source
would parse this:

for v in a = [1, 2, 3]:
    console.log(v)
would parse around new line:

def say(message):
    console.log(message)
say("hello world")

if a:
    a = 1
a = 1

if a: a = 1
a = 2

if a:
    a = 1
    
    a = 2
    a = 2
would parse this:

a = [1, 2]
for v in a:
	console.log(v)
not/in condition in if statement:

if 1 in [1, 2, 3]:
	console.log('found')

if not 4 in [1, 2, 3]:
	console.log('not found')
fix bug of order of operations
lambda expression would be parsed:

(2): x * x

(2):
	x * x

(2): 1 * x

(2): 2 * 1
refactoring
lambda expression would be parsed:

(2, 2): x * y
update task and refactoring