Squashed 'third_party/ctemplate/' content from commit 6742f62

Change-Id: I828e4e4c906f13ba19944d78a8a78652b62949af
git-subtree-dir: third_party/ctemplate
git-subtree-split: 6742f6233db12f545e90baa8f34f5c29c4eb396a
diff --git a/src/tests/htmlparser_testdata/sample_fsm.c b/src/tests/htmlparser_testdata/sample_fsm.c
new file mode 100644
index 0000000..ed85c5f
--- /dev/null
+++ b/src/tests/htmlparser_testdata/sample_fsm.c
@@ -0,0 +1,802 @@
+/* Parses C style strings
+ * Auto generated by generate_fsm.py. Please do not edit.
+ */
+#define STRINGPARSER_NUM_STATES 4
+enum stringparser_state_internal_enum {
+  STRINGPARSER_STATE_INT_TEXT,
+  STRINGPARSER_STATE_INT_STRING,
+  STRINGPARSER_STATE_INT_STRING_ESCAPE
+};
+
+static const int stringparser_states_external[] = {
+  STRINGPARSER_STATE_TEXT,
+  STRINGPARSER_STATE_STRING,
+  STRINGPARSER_STATE_STRING
+};
+
+static const char * stringparser_states_internal_names[] = {
+  "text",
+  "string",
+  "string_escape"
+};
+
+static const int stringparser_transition_row_text[] = {
+      /* '\x00' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x01' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x02' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x03' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x04' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x05' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x06' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x07' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x08' */ STRINGPARSER_STATE_INT_TEXT,
+      /*   '\t' */ STRINGPARSER_STATE_INT_TEXT,
+      /*   '\n' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x0b' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x0c' */ STRINGPARSER_STATE_INT_TEXT,
+      /*   '\r' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x0e' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x0f' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x10' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x11' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x12' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x13' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x14' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x15' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x16' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x17' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x18' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x19' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x1a' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x1b' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x1c' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x1d' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x1e' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x1f' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    ' ' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    '!' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    '"' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '#' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    '$' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    '%' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    '&' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    "'" */ STRINGPARSER_STATE_INT_TEXT,
+      /*    '(' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    ')' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    '*' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    '+' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    ',' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    '-' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    '.' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    '/' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    '0' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    '1' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    '2' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    '3' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    '4' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    '5' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    '6' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    '7' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    '8' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    '9' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    ':' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    ';' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    '<' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    '=' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    '>' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    '?' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    '@' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'A' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'B' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'C' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'D' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'E' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'F' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'G' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'H' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'I' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'J' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'K' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'L' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'M' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'N' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'O' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'P' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'Q' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'R' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'S' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'T' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'U' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'V' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'W' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'X' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'Y' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'Z' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    '[' */ STRINGPARSER_STATE_INT_TEXT,
+      /*   '\\' */ STRINGPARSER_STATE_INT_STRING,
+      /*    ']' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    '^' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    '_' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    '`' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'a' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'b' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'c' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'd' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'e' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'f' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'g' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'h' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'i' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'j' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'k' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'l' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'm' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'n' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'o' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'p' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'q' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'r' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    's' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    't' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'u' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'v' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'w' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'x' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'y' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    'z' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    '{' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    '|' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    '}' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    '~' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x7f' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x80' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x81' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x82' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x83' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x84' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x85' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x86' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x87' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x88' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x89' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x8a' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x8b' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x8c' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x8d' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x8e' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x8f' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x90' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x91' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x92' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x93' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x94' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x95' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x96' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x97' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x98' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x99' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x9a' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x9b' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x9c' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x9d' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x9e' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\x9f' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xa0' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xa1' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xa2' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xa3' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xa4' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xa5' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xa6' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xa7' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xa8' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xa9' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xaa' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xab' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xac' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xad' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xae' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xaf' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xb0' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xb1' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xb2' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xb3' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xb4' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xb5' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xb6' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xb7' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xb8' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xb9' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xba' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xbb' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xbc' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xbd' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xbe' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xbf' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xc0' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xc1' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xc2' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xc3' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xc4' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xc5' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xc6' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xc7' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xc8' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xc9' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xca' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xcb' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xcc' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xcd' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xce' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xcf' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xd0' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xd1' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xd2' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xd3' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xd4' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xd5' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xd6' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xd7' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xd8' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xd9' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xda' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xdb' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xdc' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xdd' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xde' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xdf' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xe0' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xe1' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xe2' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xe3' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xe4' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xe5' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xe6' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xe7' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xe8' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xe9' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xea' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xeb' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xec' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xed' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xee' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xef' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xf0' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xf1' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xf2' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xf3' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xf4' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xf5' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xf6' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xf7' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xf8' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xf9' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xfa' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xfb' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xfc' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xfd' */ STRINGPARSER_STATE_INT_TEXT,
+      /* '\xfe' */ STRINGPARSER_STATE_INT_TEXT
+};
+
+static const int stringparser_transition_row_string[] = {
+      /* '\x00' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x01' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x02' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x03' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x04' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x05' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x06' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x07' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x08' */ STRINGPARSER_STATE_INT_STRING,
+      /*   '\t' */ STRINGPARSER_STATE_INT_STRING,
+      /*   '\n' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x0b' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x0c' */ STRINGPARSER_STATE_INT_STRING,
+      /*   '\r' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x0e' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x0f' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x10' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x11' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x12' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x13' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x14' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x15' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x16' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x17' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x18' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x19' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x1a' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x1b' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x1c' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x1d' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x1e' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x1f' */ STRINGPARSER_STATE_INT_STRING,
+      /*    ' ' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '!' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '"' */ STRINGPARSER_STATE_INT_TEXT,
+      /*    '#' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '$' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '%' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '&' */ STRINGPARSER_STATE_INT_STRING,
+      /*    "'" */ STRINGPARSER_STATE_INT_STRING,
+      /*    '(' */ STRINGPARSER_STATE_INT_STRING,
+      /*    ')' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '*' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '+' */ STRINGPARSER_STATE_INT_STRING,
+      /*    ',' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '-' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '.' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '/' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '0' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '1' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '2' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '3' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '4' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '5' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '6' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '7' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '8' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '9' */ STRINGPARSER_STATE_INT_STRING,
+      /*    ':' */ STRINGPARSER_STATE_INT_STRING,
+      /*    ';' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '<' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '=' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '>' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '?' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '@' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'A' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'B' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'C' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'D' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'E' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'F' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'G' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'H' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'I' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'J' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'K' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'L' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'M' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'N' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'O' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'P' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'Q' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'R' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'S' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'T' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'U' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'V' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'W' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'X' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'Y' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'Z' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '[' */ STRINGPARSER_STATE_INT_STRING,
+      /*   '\\' */ STRINGPARSER_STATE_INT_STRING_ESCAPE,
+      /*    ']' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '^' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '_' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '`' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'a' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'b' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'c' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'd' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'e' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'f' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'g' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'h' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'i' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'j' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'k' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'l' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'm' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'n' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'o' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'p' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'q' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'r' */ STRINGPARSER_STATE_INT_STRING,
+      /*    's' */ STRINGPARSER_STATE_INT_STRING,
+      /*    't' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'u' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'v' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'w' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'x' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'y' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'z' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '{' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '|' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '}' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '~' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x7f' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x80' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x81' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x82' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x83' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x84' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x85' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x86' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x87' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x88' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x89' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x8a' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x8b' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x8c' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x8d' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x8e' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x8f' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x90' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x91' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x92' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x93' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x94' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x95' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x96' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x97' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x98' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x99' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x9a' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x9b' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x9c' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x9d' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x9e' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x9f' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xa0' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xa1' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xa2' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xa3' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xa4' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xa5' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xa6' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xa7' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xa8' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xa9' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xaa' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xab' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xac' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xad' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xae' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xaf' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xb0' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xb1' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xb2' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xb3' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xb4' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xb5' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xb6' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xb7' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xb8' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xb9' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xba' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xbb' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xbc' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xbd' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xbe' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xbf' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xc0' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xc1' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xc2' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xc3' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xc4' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xc5' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xc6' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xc7' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xc8' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xc9' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xca' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xcb' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xcc' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xcd' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xce' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xcf' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xd0' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xd1' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xd2' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xd3' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xd4' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xd5' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xd6' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xd7' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xd8' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xd9' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xda' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xdb' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xdc' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xdd' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xde' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xdf' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xe0' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xe1' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xe2' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xe3' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xe4' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xe5' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xe6' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xe7' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xe8' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xe9' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xea' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xeb' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xec' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xed' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xee' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xef' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xf0' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xf1' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xf2' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xf3' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xf4' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xf5' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xf6' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xf7' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xf8' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xf9' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xfa' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xfb' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xfc' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xfd' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xfe' */ STRINGPARSER_STATE_INT_STRING
+};
+
+static const int stringparser_transition_row_string_escape[] = {
+      /* '\x00' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x01' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x02' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x03' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x04' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x05' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x06' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x07' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x08' */ STRINGPARSER_STATE_INT_STRING,
+      /*   '\t' */ STRINGPARSER_STATE_INT_STRING,
+      /*   '\n' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x0b' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x0c' */ STRINGPARSER_STATE_INT_STRING,
+      /*   '\r' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x0e' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x0f' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x10' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x11' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x12' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x13' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x14' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x15' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x16' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x17' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x18' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x19' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x1a' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x1b' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x1c' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x1d' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x1e' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x1f' */ STRINGPARSER_STATE_INT_STRING,
+      /*    ' ' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '!' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '"' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '#' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '$' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '%' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '&' */ STRINGPARSER_STATE_INT_STRING,
+      /*    "'" */ STRINGPARSER_STATE_INT_STRING,
+      /*    '(' */ STRINGPARSER_STATE_INT_STRING,
+      /*    ')' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '*' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '+' */ STRINGPARSER_STATE_INT_STRING,
+      /*    ',' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '-' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '.' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '/' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '0' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '1' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '2' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '3' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '4' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '5' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '6' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '7' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '8' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '9' */ STRINGPARSER_STATE_INT_STRING,
+      /*    ':' */ STRINGPARSER_STATE_INT_STRING,
+      /*    ';' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '<' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '=' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '>' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '?' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '@' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'A' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'B' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'C' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'D' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'E' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'F' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'G' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'H' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'I' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'J' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'K' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'L' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'M' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'N' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'O' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'P' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'Q' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'R' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'S' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'T' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'U' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'V' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'W' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'X' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'Y' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'Z' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '[' */ STRINGPARSER_STATE_INT_STRING,
+      /*   '\\' */ STRINGPARSER_STATE_INT_STRING,
+      /*    ']' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '^' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '_' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '`' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'a' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'b' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'c' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'd' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'e' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'f' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'g' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'h' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'i' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'j' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'k' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'l' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'm' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'n' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'o' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'p' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'q' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'r' */ STRINGPARSER_STATE_INT_STRING,
+      /*    's' */ STRINGPARSER_STATE_INT_STRING,
+      /*    't' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'u' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'v' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'w' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'x' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'y' */ STRINGPARSER_STATE_INT_STRING,
+      /*    'z' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '{' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '|' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '}' */ STRINGPARSER_STATE_INT_STRING,
+      /*    '~' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x7f' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x80' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x81' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x82' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x83' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x84' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x85' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x86' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x87' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x88' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x89' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x8a' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x8b' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x8c' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x8d' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x8e' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x8f' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x90' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x91' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x92' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x93' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x94' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x95' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x96' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x97' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x98' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x99' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x9a' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x9b' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x9c' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x9d' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x9e' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\x9f' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xa0' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xa1' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xa2' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xa3' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xa4' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xa5' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xa6' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xa7' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xa8' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xa9' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xaa' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xab' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xac' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xad' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xae' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xaf' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xb0' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xb1' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xb2' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xb3' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xb4' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xb5' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xb6' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xb7' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xb8' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xb9' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xba' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xbb' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xbc' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xbd' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xbe' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xbf' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xc0' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xc1' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xc2' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xc3' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xc4' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xc5' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xc6' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xc7' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xc8' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xc9' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xca' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xcb' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xcc' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xcd' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xce' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xcf' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xd0' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xd1' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xd2' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xd3' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xd4' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xd5' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xd6' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xd7' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xd8' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xd9' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xda' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xdb' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xdc' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xdd' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xde' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xdf' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xe0' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xe1' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xe2' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xe3' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xe4' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xe5' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xe6' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xe7' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xe8' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xe9' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xea' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xeb' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xec' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xed' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xee' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xef' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xf0' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xf1' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xf2' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xf3' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xf4' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xf5' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xf6' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xf7' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xf8' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xf9' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xfa' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xfb' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xfc' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xfd' */ STRINGPARSER_STATE_INT_STRING,
+      /* '\xfe' */ STRINGPARSER_STATE_INT_STRING
+};
+
+static const int * stringparser_state_transitions[] = {
+  stringparser_transition_row_text,
+  stringparser_transition_row_string,
+  stringparser_transition_row_string_escape
+};
+