Skip to content

Commit 05473bf

Browse files
committedApr 25, 2015
Added most of array translations.
1 parent dc03943 commit 05473bf

File tree

1 file changed

+63
-10
lines changed

1 file changed

+63
-10
lines changed
 

‎pls.py

+63-10
Original file line numberDiff line numberDiff line change
@@ -146,9 +146,13 @@ def p_value(t):
146146
'''value : STRING
147147
| NUMBER
148148
| NAME
149-
| NAME dim'''
149+
| nameDim'''
150150
t[0] = t[1]
151151

152+
def p_name_dim(t):
153+
'nameDim : NAME dim'
154+
t[0] = "%s %s"%(t[1],t[2])
155+
152156
#arr[3] = 2
153157

154158
############################### COMPARISONS
@@ -252,10 +256,10 @@ def p_declr_assign(t):
252256
t[0] = "%s %s = %s;"%(t[1],t[2],t[4])
253257

254258
def p_assign(t):
255-
'statement : NAME EQUALS value'
259+
'''statement : NAME EQUALS value
260+
| nameDim EQUALS value'''
256261
t[0] = "%s = %s;"%(t[1],t[3])
257262

258-
259263
############################### FUNCTIONS
260264

261265
def p_func(t):
@@ -358,8 +362,13 @@ def p_error(t):
358362

359363
######################### ARRAYS
360364
#int[ ][ ] aryNumbers = new int[2][3]
361-
def p_array(t):
362-
'''statement : type dim NAME'''
365+
def p_array_declr(t):
366+
'''statement : type dim NAME''' # num[2][5] a
367+
dimension = '[]' * t[2].count('[')
368+
t[0] = "%s %s %s = new %s %s"%(t[1],dimension,t[3],t[1],t[2])
369+
370+
def p_array_assgn_declr(t):
371+
'''statement : type nameDim EQUALS value''' # num[2][5] a
363372
dimension = '[]' * t[2].count('[')
364373
t[0] = "%s %s %s = new %s %s"%(t[1],dimension,t[3],t[1],t[2])
365374

@@ -372,20 +381,64 @@ def p_dim(t):
372381
t[0] = "[%s]"%t[2]
373382

374383

375-
#num[3] = 2
384+
def p_dim_empty(t):
385+
'''dim : LSBRACKET RSBRACKET'''
386+
t[0] = "[0]"
376387

377-
#multidimention?
378-
#statement?
388+
def p_array_typeDimName(t):
389+
'typeDimName : type dim NAME'
390+
t[0] = "%s %s %s"%(t[1],t[2],t[3])
379391

380-
######################### TABLES
392+
def p_array_copy(t):
393+
'''statement : typeDimName EQUALS NAME''' #num[] a = b
394+
t[0] = "%s = %s.clone()"%(t[1],t[3])
381395

382-
######################### GRAPHS
396+
def p_array_dir_assign(t):
397+
'statement : typeDimName EQUALS arrayValue'
398+
t[0] = "%s = %s"%(t[1],t[3])
383399

400+
def p_arrayValue(t):
401+
'arrayValue : LBRACKET entry RBRACKET'
402+
print "----"
403+
t[0] = "{ %s }"%t[2]
384404

405+
def p_entry_conc(t):
406+
'entry : entry COMMA entry'
407+
t[0] = "%s , %s"%(t[1],t[3])
385408

409+
def p_entry(t):
410+
'entry : value'
411+
t[0] = t[1]
412+
413+
def p_entry2(t):
414+
'entry : LBRACKET entry RBRACKET'
415+
t[0] = "{%s}"%t[2]
416+
417+
'''
418+
419+
######################### TABLES
420+
#Table tableName = new Table(2,7)
421+
422+
def p_table(t):
423+
'statement : type NAME EQUALS LSBRACKET entry RSCRACKET' #entry with ,?
424+
dimension = '[]' * t[5].count('[')
425+
t[0] = "Table %s = new Table(new %s %s{%s})"%(t[2], t[1], dimension, t[5])#entry with {}
426+
427+
def p_table_print:
428+
'statement : print NAME'
429+
t[0] = "System.out.println(%s)"%t[2]
430+
386431
432+
######################### GRAPHS
433+
def p_graph(t):
434+
'statement : type NAME EQUALS NUMBER LSBRACKET entry RSBRACKET'
435+
t[0] = "%s %s = new Graph(%s, new int dim {%s})"%(t[1],t[2],t[4],t[6])
387436
437+
def p_graph_print(t):
438+
'statement : print NAME'
439+
t[0] = "System.out.println(%s)"%t[2]
388440
441+
'''
389442

390443

391444

0 commit comments

Comments
 (0)