Revision e0d45df7

b/scripts/qapi.py
13 13

  
14 14
def tokenize(data):
15 15
    while len(data):
16
        if data[0] in ['{', '}', ':', ',', '[', ']']:
17
            yield data[0]
18
            data = data[1:]
19
        elif data[0] in ' \n':
20
            data = data[1:]
21
        elif data[0] == "'":
22
            data = data[1:]
16
        ch = data[0]
17
        data = data[1:]
18
        if ch in ['{', '}', ':', ',', '[', ']']:
19
            yield ch
20
        elif ch in ' \n':
21
            None
22
        elif ch == "'":
23 23
            string = ''
24
            while data[0] != "'":
25
                string += data[0]
24
            esc = False
25
            while True:
26
                if (data == ''):
27
                    raise Exception("Mismatched quotes")
28
                ch = data[0]
26 29
                data = data[1:]
27
            data = data[1:]
30
                if esc:
31
                    string += ch
32
                    esc = False
33
                elif ch == "\\":
34
                    esc = True
35
                elif ch == "'":
36
                    break
37
                else:
38
                    string += ch
28 39
            yield string
29 40

  
30 41
def parse(tokens):

Also available in: Unified diff