diff options
-rw-r--r-- | parser.cpp | 7 | ||||
-rw-r--r-- | parser.h | 12 |
2 files changed, 14 insertions, 5 deletions
@@ -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 @@ -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(); |