From cb013aff054c246d99f1211acf16312a27da7be1 Mon Sep 17 00:00:00 2001 From: Dimitri van Heesch Date: Mon, 16 Sep 2019 20:09:11 +0200 Subject: Simplified code generated by scan_states.py --- src/scan_states.py | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/src/scan_states.py b/src/scan_states.py index 7f69fdd..e156b97 100644 --- a/src/scan_states.py +++ b/src/scan_states.py @@ -24,30 +24,26 @@ def main(): lex_file = sys.argv[1] if (os.path.exists(lex_file)): #write preamble - print("#define scanStateToString(x) case x: resultString = #x; break;"); - print("static const char *stateToString(int state)"); - print("{"); - print(" const char *resultString;"); - print(" switch(state)"); - print(" {"); - print(" scanStateToString(INITIAL)"); + print("static const char *stateToString(int state)") + print("{") + print(" switch(state)") + print(" {") + print(" case INITIAL: return \"INITIAL\";") with open(lex_file) as f: for line in f: if re.search(r'^%x', line) or re.search(r'^%s', line): - print(" scanStateToString(%s)"%line.split()[1]); + state = line.split()[1] + print(" case %s: return \"%s\";" % (state,state)) elif re.search(r'^%%', line): break else: pass f.close() #write post - print(" default: resultString = \"Unknown\"; break;") print(" }") - print(" return resultString;") + print(" return \"Unknown\";") print("}") - - if __name__ == '__main__': main() -- cgit v0.12