From 7cb8c5f7096be04cd65ec41a5b8f98d0ae3e890a Mon Sep 17 00:00:00 2001 From: NĂ©lio Laranjeiro Date: Sun, 23 Nov 2008 19:35:46 +0100 Subject: tools/trace: First version of the trace creator parser source file. --- tools/trace/lib/parser.g | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 tools/trace/lib/parser.g (limited to 'tools/trace/lib/parser.g') diff --git a/tools/trace/lib/parser.g b/tools/trace/lib/parser.g new file mode 100644 index 00000000..2cee66b5 --- /dev/null +++ b/tools/trace/lib/parser.g @@ -0,0 +1,32 @@ +import sys + +from traceclass import * + +%% + +parser TraceParser: + ignore: "(#.*?)?\n" + token START: "^" + token EOF: "$" + token EVENT: "[a-zA-Z_]+" + token PARAM: "[a-zA-Z_1-9]+" + token LENGTH: "[1-2-4]" + token STRING: "\".*\"" + token SPACE: " " + + rule parser: START {{ my_list = list() }} + (event {{ my_list.append (event) }} + )* + EOF {{ return my_list }} + + rule event: "EVENT " EVENT {{ e = TraceEvent(EVENT.strip()) }} + SPACE + ( param SPACE {{ e.param_add (param[0], param[1]) }} + )* + ( string {{ e.string_set (string) }} + )* + "\n" {{ return e }} + + rule param: PARAM SPACE LENGTH {{ return [PARAM.strip(), int(LENGTH.strip())] }} + + rule string: STRING {{ return (STRING.strip()) }} -- cgit v1.2.3