From ad939b95eb95c7511a371ef7d806ad9bb26453ae Mon Sep 17 00:00:00 2001 From: Robin Haberkorn Date: Wed, 7 Nov 2012 20:43:33 +0100 Subject: add helper function to initialize transition table --- parser.cpp | 7 ++----- parser.h | 12 ++++++++++++ 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/parser.cpp b/parser.cpp index 1ce6e2c..7c10445 100644 --- a/parser.cpp +++ b/parser.cpp @@ -80,11 +80,8 @@ State::get_next_state(gchar chr) StateStart::StateStart() : State() { - transitions['\0'] = this; - transitions[' '] = this; - transitions['\r'] = this; - transitions['\n'] = this; - transitions['\v'] = this; + transitions['\0'] = this; + init(" \r\n\v"); } void diff --git a/parser.h b/parser.h index dba304d..3c4f543 100644 --- a/parser.h +++ b/parser.h @@ -11,6 +11,18 @@ protected: /* static transitions */ State *transitions[MAX_TRANSITIONS]; + inline void + init(const gchar *chars, State *state) + { + while (*chars) + transitions[(int)*chars++] = state; + } + inline void + init(const gchar *chars) + { + init(chars, this); + } + public: State(); -- cgit v1.2.3