Ejemplo n.º 1
0
    def test_parse_nested_lua_table(self):
        lua_table_str = '{array = {65,23,5},dict = {mixed = {43,54.33,false,9,string = "value",},array = {3,6,4,},string = "value",},}'

        lua_table_parser = PyLuaTblParser()
        lua_table_parser.load(lua_table_str)

        dumped_dict = lua_table_parser.dumpDict()

        # list1
        list1 = dumped_dict['array']
        self.assertTrue(type(list1) == list)
        self.assertEqual(list1[0], 65)
        self.assertEqual(list1[1], 23)
        self.assertEqual(list1[2], 5)

        # dict1
        dict1 = dumped_dict['dict']
        self.assertTrue(type(dict1) == dict)

        # dict2 in dict1
        dict2 = dict1['mixed']
        self.assertTrue(type(dict2) == dict)
        self.assertEqual(dict2[1], 43)
        self.assertEqual(dict2[2], 54.33)
        self.assertEqual(dict2[3], False)
        self.assertEqual(dict2['string'], 'value')

        # list2 in dict1
        list2 = dict1['array']
        self.assertTrue(type(list2) == list)
        self.assertEqual(list2[0], 3)
        self.assertEqual(list2[1], 6)
        self.assertEqual(list2[2], 4)

        self.assertEqual(dict1['string'], 'value')
Ejemplo n.º 2
0
    def test_parse_num(self):
        lua_table_str = '{num = 100}'

        lua_table_parser = PyLuaTblParser()
        lua_table_parser.load(lua_table_str)

        dumped_dict = lua_table_parser.dumpDict()
        self.assertEqual(dumped_dict['num'], 100)
Ejemplo n.º 3
0
    def test_parse_empty_lua_table(self):
        lua_table_str = '{}'

        lua_table_parser = PyLuaTblParser()
        lua_table_parser.load(lua_table_str)

        dumped_dict = lua_table_parser.dumpDict()
        self.assertTrue(len(dumped_dict) == 0)
Ejemplo n.º 4
0
    def test_parse_scientific_notation(self):
        lua_table_str = '{num = 12.34e5}'

        lua_table_parser = PyLuaTblParser()
        lua_table_parser.load(lua_table_str)

        dumped_dict = lua_table_parser.dumpDict()
        self.assertEqual(dumped_dict['num'], 12.34e5)
Ejemplo n.º 5
0
    def test_parse_str_key_with_special_str3(self):
        lua_table_str = '{["ke\\"]y"] = 1}'

        lua_table_parser = PyLuaTblParser()
        lua_table_parser.load(lua_table_str)

        dumped_dict = lua_table_parser.dumpDict()
        self.assertEqual(dumped_dict['ke\"]y'], 1)
Ejemplo n.º 6
0
    def test_parse_string_value(self):
        lua_table_str = '{empty = "", str = "a string."}'

        lua_table_parser = PyLuaTblParser()
        lua_table_parser.load(lua_table_str)

        dumped_dict = lua_table_parser.dumpDict()
        self.assertEqual(dumped_dict['empty'], '')
        self.assertEqual(dumped_dict['str'], 'a string.')
Ejemplo n.º 7
0
    def test_parse_string_value_with_backslash(self):
        lua_table_str = '{backslash = "\\\\", controls = "\\b\\f\\n\\r\\t",}'

        lua_table_parser = PyLuaTblParser()
        lua_table_parser.load(lua_table_str)

        dumped_dict = lua_table_parser.dumpDict()
        self.assertEqual(dumped_dict['backslash'], '\\')
        self.assertEqual(dumped_dict['controls'], '\b\f\n\r\t')
Ejemplo n.º 8
0
    def test_parse_float_number(self):
        lua_table_str = '{weight = 60.55, height = 170.}'

        lua_table_parser = PyLuaTblParser()
        lua_table_parser.load(lua_table_str)

        dumped_dict = lua_table_parser.dumpDict()
        self.assertEqual(dumped_dict['weight'], 60.55)
        self.assertEqual(dumped_dict['height'], 170.0)
Ejemplo n.º 9
0
    def test_parse_str_key_with_any_charactors(self):
        lua_table_str = '{["\\"\b\f\n\r\t`1~!@#$%^&*()_+-=[]{}|;:\',./<>?"] = 1}'

        lua_table_parser = PyLuaTblParser()
        lua_table_parser.load(lua_table_str)

        dumped_dict = lua_table_parser.dumpDict()
        self.assertEqual(
            dumped_dict['"\b\f\n\r\t`1~!@#$%^&*()_+-=[]{}|;:\',./<>?'], 1)
Ejemplo n.º 10
0
    def test_parse_str_key_with_empty_str_key(self):
        lua_table_str = '{[""] = 1, [" "] = 2}'

        lua_table_parser = PyLuaTblParser()
        lua_table_parser.load(lua_table_str)

        dumped_dict = lua_table_parser.dumpDict()
        self.assertEqual(dumped_dict[''], 1)
        self.assertEqual(dumped_dict[' '], 2)
Ejemplo n.º 11
0
    def test_parse_string_value_with_escape_character(self):
        lua_table_str = '{empty = "\\"", str = "a string."}'

        lua_table_parser = PyLuaTblParser()
        lua_table_parser.load(lua_table_str)

        dumped_dict = lua_table_parser.dumpDict()
        self.assertEqual(dumped_dict['empty'], '\"')
        self.assertEqual(dumped_dict['str'], 'a string.')
Ejemplo n.º 12
0
    def test_parse_list_with_nested_dict(self):
        lua_table_str = '{{}}'

        lua_table_parser = PyLuaTblParser()
        lua_table_parser.load(lua_table_str)

        dumped_dict = lua_table_parser.dumpDict()
        self.assertTrue(type(dumped_dict) == list)
        self.assertTrue(type(dumped_dict[0]) == list)
        self.assertTrue(len(dumped_dict[0]) == 0)
Ejemplo n.º 13
0
    def test_parse_num_key(self):
        lua_table_str = '{[-1] = "Python", [2] = "C++", [-99] = "PHP"}'

        lua_table_parser = PyLuaTblParser()
        lua_table_parser.load(lua_table_str)

        dumped_dict = lua_table_parser.dumpDict()
        self.assertEqual(dumped_dict[-1], 'Python')
        self.assertEqual(dumped_dict[2], 'C++')
        self.assertEqual(dumped_dict[-99], 'PHP')
Ejemplo n.º 14
0
    def test_parse_string_value_with_any_character(self):
        lua_table_str = '{empty = "\\\\\\"\\b\\f\\n\\r\\t`1~!@#$%^&*()_+-=[]{}|;:\',./<>?", str = "a string."}'

        lua_table_parser = PyLuaTblParser()
        lua_table_parser.load(lua_table_str)

        dumped_dict = lua_table_parser.dumpDict()
        self.assertEqual(dumped_dict['empty'],
                         '\\\"\b\f\n\r\t`1~!@#$%^&*()_+-=[]{}|;:\',./<>?')
        self.assertEqual(dumped_dict['str'], 'a string.')
Ejemplo n.º 15
0
    def test_parse_list_with_extra_blank_and_semicolon_fieldsep(self):
        lua_table_str = '{80, 90;    100}'

        lua_table_parser = PyLuaTblParser()
        lua_table_parser.load(lua_table_str)

        dumped_dict = lua_table_parser.dumpDict()
        self.assertTrue(type(dumped_dict) == list)
        self.assertEqual(dumped_dict[0], 80)
        self.assertEqual(dumped_dict[1], 90)
        self.assertEqual(dumped_dict[2], 100)
Ejemplo n.º 16
0
    def test_parse_list_end_with_comma(self):
        lua_table_str = '{80, 90, 100,}'

        lua_table_parser = PyLuaTblParser()
        lua_table_parser.load(lua_table_str)

        dumped_dict = lua_table_parser.dumpDict()
        self.assertTrue(type(dumped_dict) == list)
        self.assertEqual(dumped_dict[0], 80)
        self.assertEqual(dumped_dict[1], 90)
        self.assertEqual(dumped_dict[2], 100)
Ejemplo n.º 17
0
    def test_parse_signed_num(self):
        lua_table_str = '{positive_num = +100, negative_num = -100, positive_float_num = +100.55, negative_float_num = -100.0}'

        lua_table_parser = PyLuaTblParser()
        lua_table_parser.load(lua_table_str)

        dumped_dict = lua_table_parser.dumpDict()
        self.assertEqual(dumped_dict['positive_num'], 100)
        self.assertEqual(dumped_dict['negative_num'], -100)
        self.assertEqual(dumped_dict['positive_float_num'], 100.55)
        self.assertEqual(dumped_dict['negative_float_num'], -100.0)
Ejemplo n.º 18
0
def main():
    while True:
        try:
            text = raw_input('lua>')
        except EOFError:
            break
        if not text:
            continue
        a1 = PyLuaTblParser()
        a1.load(text)
        print(a1.dump())
Ejemplo n.º 19
0
    def test_parse_sstr_key_with_extra_blanks(self):
        lua_table_str = '{   _na_m4ef5    = 1,   move_name   = 2, myname50     =  3   ,   _temp =    4,   a23b9 = 5}'

        lua_table_parser = PyLuaTblParser()
        lua_table_parser.load(lua_table_str)

        dumped_dict = lua_table_parser.dumpDict()
        self.assertEqual(dumped_dict['_na_m4ef5'], 1)
        self.assertEqual(dumped_dict['move_name'], 2)
        self.assertEqual(dumped_dict['myname50'], 3)
        self.assertEqual(dumped_dict['_temp'], 4)
        self.assertEqual(dumped_dict['a23b9'], 5)
Ejemplo n.º 20
0
def test4():
    print '.................... Test4'
    f = open('test4.txt', 'r')
    lines = f.readlines()
    p = PyLuaTblParser()
    count = 1
    for line in lines:
        print '----------- line ' + str(count) + ' :'
        count += 1
        if len(line) > 0 and line[0] == '#' or line.isspace():
            print '... omitted'
            continue
        p.load(line)
        print p.dump()
    f.close()
Ejemplo n.º 21
0
    def test_parse_nil_dict_and_remove_the_nil_item(self):
        lua_table_str = '{scores = {80, Math = 89.5, 72.5, nil, English = 99, 86.55, computer = nil}}'

        lua_table_parser = PyLuaTblParser()
        lua_table_parser.load(lua_table_str)

        dumped_dict = lua_table_parser.dumpDict()

        scores = dumped_dict['scores']
        self.assertTrue(type(scores) == dict)
        self.assertEqual(scores[1], 80)
        self.assertEqual(scores['Math'], 89.5)
        self.assertEqual(scores[2], 72.5)
        self.assertEqual(scores['English'], 99)
        self.assertEqual(scores[3], 86.55)
        self.assertFalse('computer' in scores.keys())
Ejemplo n.º 22
0
    def test_parse_complicated_list(self):
        lua_table_str = '{80, 89.5, false, 72.5, "math", nil, nil, 99, true, 86.55, nil, "error", {}}'

        lua_table_parser = PyLuaTblParser()
        lua_table_parser.load(lua_table_str)

        dumped_dict = lua_table_parser.dumpDict()
        self.assertTrue(type(dumped_dict) == list)
        self.assertEqual(dumped_dict[0], 80)
        self.assertEqual(dumped_dict[1], 89.5)
        self.assertEqual(dumped_dict[2], False)
        self.assertEqual(dumped_dict[3], 72.5)
        self.assertEqual(dumped_dict[4], "math")
        self.assertEqual(dumped_dict[5], None)
        self.assertEqual(dumped_dict[6], None)
        self.assertEqual(dumped_dict[7], 99)
        self.assertEqual(dumped_dict[8], True)
        self.assertEqual(dumped_dict[9], 86.55)
        self.assertEqual(dumped_dict[10], None)
        self.assertEqual(dumped_dict[11], "error")
        self.assertTrue(type(dumped_dict[12]) == list)  # {} to []?
        self.assertTrue(len(dumped_dict[12]) == 0)
Ejemplo n.º 23
0
    def test_parse_nested_list(self):
        lua_table_str = '{name = "Python", nested = {80, 89.5, false, 72.5, 99, true, 86.55}, weight = 60.55, height = 170., location = "sichuan"}'

        lua_table_parser = PyLuaTblParser()
        lua_table_parser.load(lua_table_str)

        dumped_dict = lua_table_parser.dumpDict()

        nested = dumped_dict['nested']
        print nested
        self.assertTrue(type(nested) == list)
        self.assertEqual(nested[0], 80)
        self.assertEqual(nested[1], 89.5)
        self.assertEqual(nested[2], False)
        self.assertEqual(nested[3], 72.5)
        self.assertEqual(nested[4], 99)
        self.assertEqual(nested[5], True)
        self.assertEqual(nested[6], 86.55)

        self.assertEqual(dumped_dict['name'], 'Python')
        self.assertEqual(dumped_dict['weight'], 60.55)
        self.assertEqual(dumped_dict['height'], 170.0)
        self.assertEqual(dumped_dict['location'], 'sichuan')
Ejemplo n.º 24
0
  ,
  3.1415926535897932384626433832795028841971693993751058209749445923
  ,

  1066


  ,"rosebud"

}}


'''
parser = PyLuaTblParser()
#s1 = '{[97] = {{},{}},}'
parser.load(testStr)
print parser.dumpDict()
# print parser.dumpLuaTable("table_test.lua")
# # print PythonStrToStruct('''{
# #      "array": [65, 23, 5],
# #      "dict": {
# #           "mixed": {
# #                1: 43,
# #                2: 54.33,
# #                3: False,
# #                4: 9,
# #                "string": "value"
# #           },
# #           "null" : None,
# #           "array": [3, 6,4],
# #           "string": "value"
Ejemplo n.º 25
0
                    3,
                    [45] = 11    --[[fdsaf--]],
                    [''] = '',
                    ''
                }
            }
        }
    ,,,}'''

    test_str = '''{\r\nroot = {\r\n\t"Test Pattern String",\r\n\t-- {"object with 1 member" = {"array with 1 element",},},\r\n\t{["object with 1 member"] = {"array with 1 element",},},\r\n\t{},\r\n\t[99] = -42,\r\n\t[98] = {{}},\r\n\t[97] = {{},{}},\r\n\t[96] = {{}, 1, 2, nil},\r\n\t[95] = {1, 2, {["1"] = 1}},\r\n\t[94] = { {["1"]=1, ["2"]=2}, {1, ["2"]=2}, ["3"] = 3 },\r\n\ttrue,\r\n\tfalse,\r\n\tnil,\r\n\t{\r\n\t\t["integer"]= 1234567890,\r\n\t\treal=-9876.543210,\r\n\t\te= 0.123456789e-12,\r\n\t\tE= 1.234567890E+34,\r\n\t\tzero = 0,\r\n\t\tone = 1,\r\n\t\tspace = " ",\r\n\t\tquote = "\\"",\r\n\t\tbackslash = "\\\\",\r\n\t\tcontrols = "\\b\\f\\n\\r\\t",\r\n\t\tslash = "/ & \\\\",\r\n\t\talpha= "abcdefghijklmnopqrstuvwyz",\r\n\t\tALPHA = "ABCDEFGHIJKLMNOPQRSTUVWYZ",\r\n\t\tdigit = "0123456789",\r\n\t\tspecial = "`1~!@#$%^&*()_+-={\':[,]}|;.</>?",\r\n\t\thex = "0x01230x45670x89AB0xCDEF0xabcd0xef4A",\r\n\t\t["true"] = true,\r\n\t\t["false"] = false,\r\n\t\t["nil"] = nil,\r\n\t\tarray = {nil, nil,},\r\n\t\tobject = {  },\r\n\t\taddress = "50 St. James Street",\r\n\t\turl = "http://www.JSON.org/",\r\n\t\tcomment = "// /* <!-- --",\r\n\t\t["# -- --> */"] = " ",\r\n\t\t[" s p a c e d " ] = {1,2 , 3\r\n\r\n\t\t\t,\r\n\r\n\t\t\t4 , 5        ,          6           ,7        },\r\n\t\t--[[[][][]  Test multi-line comments\r\n\t\t\tcompact = {1,2,3,4,5,6,7},\r\n\t- -[luatext = "{\\"object with 1 member\\" = {\\"array with 1 element\\"}}",\r\n\t\tquotes = "&#34; (0x0022) %22 0x22 034 &#x22;",\r\n\t\t["\\\\\\"\\b\\f\\n\\r\\t`1~!@#$%^&*()_+-=[]{}|;:\',./<>?"]\r\n\t\t= "A key can be any string"]]\r\n\t--         ]]\r\n\t\tcompact = {1,2,3,4,5,6,7},\r\n\t\tluatext = "{\\"object with 1 member\\" = {\\"array with 1 element\\"}}",\r\n\t\tquotes = "&#34; (0x0022) %22 0x22 034 &#x22;",\r\n\t\t["\\\\\\"\\b\\f\\n\\r\\t`1~!@#$%^&*()_+-=[]{}|;:\',./<>?"]\r\n\t\t= "A key can be any string"\r\n\t},\r\n\t0.5 ,31415926535897932384626433832795028841971693993751058209749445923.\r\n\t,\r\n\t3.1415926535897932384626433832795028841971693993751058209749445923\r\n\t,\r\n\r\n\t1066\r\n\r\n\r\n\t,"rosebud"\r\n\r\n}}
    '''

    a1 = PyLuaTblParser()
    a2 = PyLuaTblParser()
    a3 = PyLuaTblParser()

    a1.load(test_str)
    print a1.dump()
    d1 = a1.dumpDict()

    a2.loadDict(d1)
    a2.dumpLuaTable('output.txt')
    a3.loadLuaTable('output.txt')

    d3 = a3.dumpDict()

    print d1 == d3
    print '\n'
    print d1
    print '\n'
    print d3
Ejemplo n.º 26
0
parser.load(r'''

{root = {
  "Test Pattern String",
  -- {"object with 1 member" = {"array with 1 element",},},
  {["object with 1 member"] = {"array with 1 element",},},
  {},
  [99] = -42,
  [98] = {{}},
  [97] = {{},{}},
  [96] = {{}, 1, 2, nil},
  [95] = {1, 2, {["1"] = 1}},
  [94] = { {["1"]=1, ["2"]=2}, {1, ["2"]=2}, ["3"] = 3 },
  true,
  false,
  nil,
  {
    ["integer"]= 1234567890,
    real=-9876.543210,
    e= 0.123456789e-12,
    E= 1.234567890E+34,
    zero = 0,
    one = 1,
    space = " ",
    quote = "\"",
    backslash = "\\",
    controls = "\b\f\n\r\t",
    slash = "/ & \\",
    alpha= "abcdefghijklmnopqrstuvwyz",
    ALPHA = "ABCDEFGHIJKLMNOPQRSTUVWYZ",
    digit = "0123456789",
    special = "`1~!@#$%^&*()_+-={':[,]}|;.</>?",
    hex = "0x01230x45670x89AB0xCDEF0xabcd0xef4A",
    ["true"] = true,
    ["false"] = false,
    ["nil"] = nil,
    array = {nil, nil,},
    object = {  },
    address = "50 St. James Street",
    url = "http://www.JSON.org/",
    comment = "// /* <!-- --",
    ["# -- -- --> */"] = " ",
    [" s p a c e d " ] = {1,2 , 3

    ,

    4 , 5        ,          6           ,7        },
    --[[[][][]  Test multi-line comments
    compact = {1,2,3,4,5,6,7},
    - -[luatext = "{\"object with 1 member\" = {\"array with 1 element\"}}",
    quotes = "&#34; (0x0022) %22 0x22 034 &#x22;",
    ["\\\"\b\f\n\r\t`1~!@#$%^&*()_+-=[]{}|;:',./<>?"]
    = "A key can be any string"]]
    --         ]]
    compact = {1,2,3,4,5,6,7},
    luatext = "{\"object with 1 member\" = {\"array with 1 element\"}}",
    quotes = "&#34; (0x0022) %22 0x22 034 &#x22;",
    ["\\\"\b\f\n\r\t`1~!@#$%^&*()_+-=[]{}|;:',./<>?"]
    = "A key can be any string"
  },
  0.5 ,31415926535897932384626433832795028841971693993751058209749445923.
  ,
  3.1415926535897932384626433832795028841971693993751058209749445923
  ,

  1066


  ,"rosebud"

}}


''')
Ejemplo n.º 27
0
    test_str7 = '{ "x";[4] = "y"; x = 1;"sd", [30] = 23; 45 }'

    test_str9 = '{ [  \t"\\ abc"  ] = 123,[123]=2,[abcd]="abcd", xx =1}'

    test_str = [
        test_str1,
        test_str2,
        test_str3,
        test_str4,
        test_str5,
        test_str6,
        test_str0,
    ]
    s1 = "\\\"\b\f\n\r\t`1~!@#$%^&*()_+-=[]{}|;:',./<>?"
    s2 = '\\"'

    test_str10 = '{["\\"--asd"] = 1 --asd\n 123}'

    test_str = [test_str10]

    #bug1= '{special = "`1~!@#$%^&*()_+-={':[,]}|;.</>?",hex = "a",}'

    lua_table_str = '{scores = {80, Math = 89.5, 72.5, nil, English = 99, 86.55, computer = nil}}'

    lua_table_parser = PyLuaTblParser()
    lua_table_parser.load(lua_table_str)

    #lua_table_parser.loadLuaTable('lua2.lua')
    #lua_table_parser.loadLuaTable('rawluatable.lua')
    print lua_table_parser.dumpDict()
Ejemplo n.º 28
0
test_str22 = "{}"
test_str23 = "{['1'] = nil, 'hello', 123, nil, [':['] = nil, 'world'}"
test_str24 = r"""{[1]="i am \n
ok"}
"""
test_str25 = "{true1=1}"
test_str26 = r"""{["\"s\""]=2}"""
test_str27 = r"""{[1]={[2]={a="3",b="4",c='\"s\"'}}}"""
test_str28 = r"""{a={b="\uabcd\n\r\t'"}}"""
test_str29 = r"""{a='\"c'}"""
test_str30 = r"""{['/\\"\x08\x0c\n\r\t`1~!@#$%^&*()_+-=[]{}|;:\',./<>?'] = "test"}"""
test_str31 = r"""{1,2 --df
,"dfdf"}"""
test_str32 = "{nil,nil,nil}"
test_str33 = "{a={a={'12\/3','1231'}}}"
test_str34 = r"""{["1"]=nil,"hello",123,nil,"world"}"""
test_str35 = "{'c',[1]=2}"
test_str36 = r"""{["array with nil"] = {nil,nil,[3] = 3.14,nil,nil,key = 183}}"""
test_str37 = "{1,2,nil,4}"
test_str38 = "{[1]=1,nil,a=3}"
pyt.load(test_str30)
#pyt.loadDict(d)	
#pyt.loadDict(d2)
#print d2
res = pyt.dumpDict()
print res

#pyt.loadLuaTable("luaTable.txt")
#d = pyt.dumpDict()
#print d
pyt.dumpLuaTable("dumpLuaTable.txt")
Ejemplo n.º 29
0
from PyLuaTblParser import *

lua_table_str = '{array = {65,23,5,},["dict"] = {mixed = {43,54.33,false,9,string = "value",},array = {3,6,4,};string = "value",},}'

Parser1 = PyLuaTblParser()
Parser1.load(lua_table_str)
parsed_lua_table1 = Parser1.dumpDict()
print parsed_lua_table1


Parser2 = PyLuaTblParser()
Parser2.loadDict(parsed_lua_table1)
parsed_lua_table2 = Parser2.dumpDict()

print parsed_lua_table2


Parser1.dumpLuaTable("lua_table.lua")
Parser2.dumpLuaTable("lua_table.lua")

Parser1.loadLuaTable("lua_table.lua")
parsed_lua_table3 = Parser1.dumpDict()
print parsed_lua_table3


Parser3 = PyLuaTblParser()
Parser3.loadLuaTable("rawluatable.lua")
Parser3.dumpLuaTable('testcase.lua')

Parser3.loadLuaTable('testcase.lua')
Parser3.dumpLuaTable('testcase.lua')
Ejemplo n.º 30
0
def test1():
    print '.................... Test1 load and dump :'

    p = PyLuaTblParser()

    s0 = '{[\'232\'] = {}}'
    print '... load s0'
    p.load(s0)
    print '... dump'
    print p.dump()

    s1 = '{[\'array\'] = {65, 23, 5,}}'
    print '... load s1'
    p.load(s1)
    print '... dump'
    print p.dump()

    s2 = '{"Sunday", "Monday", "Tuesday", \'Wednesday\', "Thursday", "Friday", "Saturday"}'
    print '... load s2'
    p.load(s2)
    print '... dump'
    print p.dump()
    print p[1]
    # print p[0]

    s3 = '{x=0,y=1,[3]=2}'
    print '... load s3'
    p.load(s3)
    print '... dump'
    print p.dump()
    print p[3]

    s4 = '{array = {65,23,5,},dict = {mixed = {43,54.33,false,9,string = "value",},array = {3,6,4,},string = "value",},}'
    print '... load s4'
    p.load(s4)
    print '... dump'
    print p.dump()

    s5 = '{color="blue", thickness=2, npoints=4,\
                 {x=0,   y=0},\
                 {x=-10, y=0},\
                 {x=-10, y=1},\
                 {x=0,   y=1}\
          }'

    print '... load s5'
    p.load(s5)
    print '... dump'
    print p.dump()

    p = PyLuaTblParser()
    s6 = '{["x"]=0, ["y"]=0}'
    print '... load s6'
    p.load(s6)
    print '... dump'
    print p.dump()

    s7 = '{x=10, y=45; "one", "two", "three"}'
    print '... load s7'
    p.load(s7)
    print '... dump'
    print p.dump()

    # Test tables with 'nil'
    s8 = '{x=nil, y = 0, z=nil, nil}'
    print '... load s8'
    p.load(s8)
    print '... dump'
    print p.dump()

    # Test tables with 'nil'
    s8 = '{nil, 0, nil, 1}'
    print '... load s8'
    p.load(s8)
    print '... dump'
    print p.dump()
    print p[1], p[2], p[3], p[4]

    s9 = '{["x"]="{", ["y"]="}"}'
    print '... load s9'
    p.load(s9)
    print '... dump'
    print p.dump()