@@ -0,0 +1,762 @@
+import ply.lex as lex%0Aimport re%0A%0Atokens = ( 'SECTION',%0A           'IDENTIFIER',%0A           'LBRACE',%0A           'RBRACE',%0A           'SEMI',%0A           'TRUE',%0A           'FALSE' )%0A           %0A%0Adef t_SECTION(t):%0A    r'section'%0A    return t%0A%0Adef t_TRUE(t):%0A    r'(true%7C1)'%0A    return t%0A%0Adef t_FALSE(t):%0A    r'(false%7C0)'%0A    return t%0A%0Adef t_IDENTIFIER(t):%0A    r'%5Ba-zA-Z%5C-0-9%5D+'%0A    return t%0A%0Adef t_LBRACE(t):%0A    r'%7B'%0A    return t%0A%0Adef t_RBRACE(t):%0A    r'%7D'%0A    return t%0A%0Adef t_SEMI(t):%0A    r';'%0A    return t%0A%0Adef t_NEWLINE(t):%0A    r'%5Cn+'%0A%0A    t.lexer.lineno += len(t.value)%0A    return t%0A%0At_ignore = ' %5Ct%5Cn'%0A%0A# Error handling rule%0Adef t_error(t):%0A    print(%22Illegal character '%7B0%7D' at line %7B1%7D%22.format(t.value%5B0%5D, t.lineno))%0A    t.lexer.skip(1)%0A%0Alexer = lex.lex()%0A

Add lexer draft.