summaryrefslogtreecommitdiff
path: root/test/rlhc.d/case/lmgoto.cpp-C-T1--var-backend.in
diff options
context:
space:
mode:
Diffstat (limited to 'test/rlhc.d/case/lmgoto.cpp-C-T1--var-backend.in')
-rw-r--r--test/rlhc.d/case/lmgoto.cpp-C-T1--var-backend.in464
1 files changed, 464 insertions, 0 deletions
diff --git a/test/rlhc.d/case/lmgoto.cpp-C-T1--var-backend.in b/test/rlhc.d/case/lmgoto.cpp-C-T1--var-backend.in
new file mode 100644
index 00000000..e810ec4a
--- /dev/null
+++ b/test/rlhc.d/case/lmgoto.cpp-C-T1--var-backend.in
@@ -0,0 +1,464 @@
+host( "working/lmgoto.rl", 1 ) @{/*
+ * @@LANG: c++
+ */
+
+ #include <iostream>
+ #include <string.h>
+ using namespace std;
+
+ #define TK_Dlit 192
+ #define TK_Slit 193
+ #define TK_Float 194
+ #define TK_Id 195
+ #define TK_NameSep 197
+ #define TK_Arrow 211
+ #define TK_PlusPlus 212
+ #define TK_MinusMinus 213
+ #define TK_ArrowStar 214
+ #define TK_DotStar 215
+ #define TK_ShiftLeft 216
+ #define TK_ShiftRight 217
+ #define TK_IntegerDecimal 218
+ #define TK_IntegerOctal 219
+ #define TK_IntegerHex 220
+ #define TK_EqualsEquals 223
+ #define TK_NotEquals 224
+ #define TK_AndAnd 225
+ #define TK_OrOr 226
+ #define TK_MultAssign 227
+ #define TK_DivAssign 228
+ #define TK_PercentAssign 229
+ #define TK_PlusAssign 230
+ #define TK_MinusAssign 231
+ #define TK_AmpAssign 232
+ #define TK_CaretAssign 233
+ #define TK_BarAssign 234
+ #define TK_DotDotDot 240
+ #define TK_Whitespace 241
+ #define TK_Comment 242
+
+ struct Scanner
+ {
+ int cs, act;
+ const char *ts, *te;
+ bool isCxx;
+
+ void token( int tok );
+ void run( const char *buf );
+ };
+
+
+
+
+}@
+array s16 _Scanner_key_offsets( 0, 161 ) = { 0, 0, 3, 3, 6, 6, 7, 11, 13, 19, 50, 52, 53, 54, 56, 57, 59, 62, 63, 67, 75, 81, 84, 94, 103, 107, 111, 115, 125, 129, 138, 139, 140, 147, 156, 157, 159, 161, 0 };
+
+array char _Scanner_trans_keys( 0, 126 ) = { 10, 34, 92, 10, 39, 92, 46, 43, 45, 48, 57, 48, 57, 48, 57, 65, 70, 97, 102, 33, 34, 37, 38, 39, 42, 43, 45, 46, 47, 48, 58, 61, 76, 94, 95, 124, 35, 44, 49, 57, 59, 64, 65, 90, 91, 96, 97, 122, 123, 126, 33, 126, 61, 61, 38, 61, 61, 43, 61, 45, 61, 62, 42, 42, 46, 48, 57, 69, 70, 76, 101, 102, 108, 48, 57, 70, 76, 102, 108, 48, 57, 42, 47, 61, 46, 69, 76, 85, 101, 108, 117, 120, 48, 57, 46, 69, 76, 85, 101, 108, 117, 48, 57, 76, 85, 108, 117, 76, 85, 108, 117, 76, 85, 108, 117, 76, 85, 108, 117, 48, 57, 65, 70, 97, 102, 76, 85, 108, 117, 46, 69, 76, 85, 101, 108, 117, 48, 57, 58, 61, 95, 48, 57, 65, 90, 97, 122, 34, 39, 95, 48, 57, 65, 90, 97, 122, 61, 61, 124, 10, 42, 47, 0 };
+
+array s8 _Scanner_single_lengths( 0, 17 ) = { 0, 3, 0, 3, 0, 1, 2, 0, 0, 17, 0, 1, 1, 2, 1, 2, 3, 1, 2, 6, 4, 3, 8, 7, 4, 4, 4, 4, 4, 7, 1, 1, 1, 3, 1, 2, 2, 1, 0 };
+
+array s8 _Scanner_range_lengths( 0, 7 ) = { 0, 0, 0, 0, 0, 0, 1, 1, 3, 7, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 3, 0, 1, 0, 0, 3, 3, 0, 0, 0, 0, 0 };
+
+array s16 _Scanner_index_offsets( 0, 169 ) = { 0, 0, 4, 5, 9, 10, 12, 16, 18, 22, 47, 49, 51, 53, 56, 58, 61, 65, 67, 71, 79, 85, 89, 99, 108, 113, 118, 123, 131, 136, 145, 147, 149, 154, 161, 163, 166, 169, 0 };
+
+array s8 _Scanner_trans_cond_spaces( -1, 0 ) = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0 };
+
+array s16 _Scanner_trans_offsets( 0, 205 ) = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 0 };
+
+array s8 _Scanner_trans_lengths( 0, 1 ) = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0 };
+
+array s8 _Scanner_cond_keys( 0, 0 ) = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
+
+array s8 _Scanner_cond_targs( 0, 37 ) = { 9, 9, 2, 1, 1, 9, 9, 4, 3, 3, 9, 9, 7, 7, 20, 9, 20, 9, 27, 27, 27, 9, 11, 1, 12, 13, 3, 14, 15, 16, 18, 21, 22, 30, 31, 33, 34, 32, 35, 9, 29, 9, 32, 9, 32, 9, 10, 9, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 17, 9, 9, 9, 9, 5, 19, 9, 6, 9, 9, 6, 9, 9, 19, 9, 9, 9, 9, 9, 20, 9, 9, 9, 9, 9, 19, 6, 25, 25, 6, 25, 25, 8, 23, 9, 19, 6, 24, 24, 6, 24, 24, 23, 9, 9, 9, 9, 9, 9, 26, 26, 26, 26, 9, 9, 9, 9, 9, 9, 28, 28, 28, 28, 27, 27, 27, 9, 9, 9, 9, 9, 9, 19, 6, 25, 25, 6, 25, 25, 29, 9, 9, 9, 9, 9, 32, 32, 32, 32, 9, 1, 3, 32, 32, 32, 32, 9, 9, 9, 9, 9, 9, 36, 37, 36, 36, 36, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 36, 0 };
+
+array s8 _Scanner_cond_actions( 0, 50 ) = { 1, 2, 0, 0, 0, 1, 3, 0, 0, 0, 5, 4, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 0, 0, 12, 0, 0, 0, 9, 11, 9, 0, 9, 0, 9, 0, 13, 0, 15, 14, 16, 14, 17, 18, 14, 19, 14, 20, 21, 14, 22, 23, 0, 14, 25, 24, 26, 0, 27, 14, 0, 29, 29, 0, 29, 29, 27, 28, 29, 29, 29, 29, 0, 28, 30, 31, 32, 14, 27, 0, 0, 0, 0, 0, 0, 0, 34, 33, 27, 0, 0, 0, 0, 0, 0, 34, 35, 36, 36, 36, 36, 35, 0, 0, 0, 0, 33, 37, 37, 37, 37, 33, 0, 0, 0, 0, 0, 0, 0, 38, 39, 39, 39, 39, 38, 27, 0, 0, 0, 0, 0, 0, 11, 33, 40, 14, 41, 14, 0, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 42, 43, 14, 44, 45, 14, 48, 0, 47, 50, 49, 1, 1, 1, 1, 4, 1, 1, 6, 13, 14, 14, 14, 14, 14, 14, 24, 14, 28, 28, 14, 33, 35, 35, 33, 33, 38, 38, 33, 14, 14, 42, 42, 14, 14, 49, 0 };
+
+array s8 _Scanner_to_state_actions( 0, 46 ) = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0 };
+
+array s8 _Scanner_from_state_actions( 0, 8 ) = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0 };
+
+array s8 _Scanner_eof_trans_indexed( 0, 75 ) = { 0, 9, 9, 9, 9, 12, 9, 9, 14, 0, 16, 17, 17, 17, 17, 17, 17, 27, 17, 30, 30, 17, 35, 36, 36, 35, 35, 39, 39, 35, 17, 17, 43, 43, 17, 17, 0, 75, 0 };
+
+array s16 _Scanner_eof_trans_direct( 0, 206 ) = { 0, 172, 173, 174, 175, 176, 177, 178, 179, 0, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 0, 206, 0 };
+
+array s8 _Scanner_nfa_targs( 0, 0 ) = { 0, 0 };
+
+array s8 _Scanner_nfa_offsets( 0, 0 ) = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
+
+array s8 _Scanner_nfa_push_actions( 0, 0 ) = { 0, 0 };
+
+array s8 _Scanner_nfa_pop_trans( 0, 0 ) = { 0, 0 };
+
+value int Scanner_start = 9;
+value int Scanner_error = 0;
+
+value int Scanner_en_comment = 36;
+value int Scanner_en_main = 9;
+
+host( "working/lmgoto.rl", 140 ) @{
+
+ void Scanner::token( int tok )
+ {
+ const char *data = ts;
+ int len = te - ts;
+ cout << "<" << tok << "> ";
+ if ( data != 0 ) {
+ for ( int i = 0; i < len; i++ )
+ cout << data[i];
+ }
+ cout << '\n';
+ }
+
+ void Scanner::run( const char *buf )
+ {
+ int len = strlen( buf );
+ }@
+ {
+ cs = cast(int)Scanner_start;
+ ts = nil;
+ te = nil;
+ act = 0;
+ }
+ host( "working/lmgoto.rl", 157 ) @{
+ const char *p = buf;
+ const char *pe = buf + len;
+ const char *eof = pe;
+ }@
+ {
+ int _klen;
+ index char _keys;
+ index s8 _ckeys;
+ int _cpc;
+ uint _trans;
+ uint _cond = 0;
+ uint _have = 0;
+ uint _cont = 1;
+ while ( _cont == 1 ) {
+
+ if ( cs == 0 )
+ _cont = 0;
+ _have = 0;
+ if ( p == pe ) {
+ if ( p == eof )
+ {
+ if ( _Scanner_eof_trans_direct[cs] > 0 ) {
+ _trans = cast(uint)_Scanner_eof_trans_direct[cs] - 1;
+ _cond = cast(uint)_Scanner_trans_offsets[_trans];
+ _have = 1;
+ }
+ if ( _have == 0 ) {
+ }
+ }
+
+ if ( _have == 0 )
+ _cont = 0;
+ }
+ if ( _cont == 1 ) {
+ if ( _have == 0 ) {
+ switch ( _Scanner_from_state_actions[cs] ) {
+ case 8 {
+ host( "NONE", 1 ) ${${ts = p;}$}$
+ }
+ }
+
+ _keys = offset( _Scanner_trans_keys, _Scanner_key_offsets[cs] );
+ _trans = cast(uint)_Scanner_index_offsets[cs];
+ _have = 0;
+
+ _klen = cast(int)_Scanner_single_lengths[cs];
+ if ( _klen > 0 ) {
+ index char _lower;
+ index char _mid;
+ index char _upper;
+ _lower = _keys;
+ _upper = _keys + _klen - 1;
+ while ( _upper >= _lower && _have == 0 ) {
+ _mid = _lower + ((_upper-_lower) >> 1);
+ if ( ( deref( data, p )) < deref( _Scanner_trans_keys, _mid ) )
+ _upper = _mid - 1;
+ else if ( ( deref( data, p )) > deref( _Scanner_trans_keys, _mid ) )
+ _lower = _mid + 1;
+ else {
+ _trans += cast(uint)(_mid - _keys);
+ _have = 1;
+ }
+ }
+ if ( _have == 0 ) {
+ _keys += _klen;
+ _trans += cast(uint)_klen;
+ }
+ }
+
+ if ( _have == 0 ) {
+ _klen = cast(int)_Scanner_range_lengths[cs];
+ if ( _klen > 0 ) {
+ index char _lower;
+ index char _mid;
+ index char _upper;
+ _lower = _keys;
+ _upper = _keys + (_klen<<1) - 2;
+ while ( _have == 0 && _lower <= _upper ) {
+ _mid = _lower + (((_upper-_lower) >> 1) & ~1);
+ if ( ( deref( data, p )) < deref( _Scanner_trans_keys, _mid ) )
+ _upper = _mid - 2;
+ else if ( ( deref( data, p )) > deref( _Scanner_trans_keys, _mid + 1 ) )
+ _lower = _mid + 2;
+ else {
+ _trans += cast(uint)((_mid - _keys)>>1);
+ _have = 1;
+ }
+ }
+ if ( _have == 0 )
+ _trans += cast(uint)_klen;
+ }
+ }
+
+ _ckeys = offset( _Scanner_cond_keys, _Scanner_trans_offsets[_trans] );
+ _klen = cast(int)_Scanner_trans_lengths[_trans];
+ _cond = cast(uint)_Scanner_trans_offsets[_trans];
+ _have = 0;
+
+ _cpc = 0;
+ {
+ index s8 _lower;
+ index s8 _mid;
+ index s8 _upper;
+ _lower = _ckeys;
+ _upper = _ckeys + _klen - 1;
+ while ( _have == 0 && _lower <= _upper ) {
+ _mid = _lower + ((_upper-_lower) >> 1);
+ if ( _cpc < cast(int)deref( _Scanner_cond_keys, _mid ) )
+ _upper = _mid - 1;
+ else if ( _cpc > cast(int)deref( _Scanner_cond_keys, _mid ) )
+ _lower = _mid + 1;
+ else {
+ _cond += cast(uint)(_mid - _ckeys);
+ _have = 1;
+ }
+ }
+ if ( _have == 0 ) {
+ cs = 0;
+ _cont = 0;
+ }
+ }
+ }
+ if ( _cont == 1 ) {
+ cs = cast(int)_Scanner_cond_targs[_cond];
+
+ switch ( _Scanner_cond_actions[_cond] ) {
+ case 10 {
+ host( "NONE", 1 ) ${${te = p+1;}$}$
+ }
+ case 50 {
+ host( "working/lmgoto.rl", 56 ) ${${te = p+1;host( "working/lmgoto.rl", 56 ) ${
+ if ( ! isCxx )
+ ${cs = 9;}$else {
+ cout << "comm char: " << ts[0] << endl;
+ cout << "comm char: " << ts[1] << endl;
+ }
+ }$}$}$
+ }
+ case 48 {
+ host( "working/lmgoto.rl", 65 ) ${${te = p+1;host( "working/lmgoto.rl", 65 ) ${
+ if ( isCxx )
+ ${cs = 9;}$else
+ cout << "comm char: " << ts[0] << endl;
+ }$}$}$
+ }
+ case 47 {
+ host( "working/lmgoto.rl", 72 ) ${${te = p+1;host( "working/lmgoto.rl", 72 ) ${
+ cout << "comm char: " << ts[0] << endl;
+ }$}$}$
+ }
+ case 49 {
+ host( "working/lmgoto.rl", 72 ) ${${te = p;p = p - 1;host( "working/lmgoto.rl", 72 ) ${
+ cout << "comm char: " << ts[0] << endl;
+ }$}$}$
+ }
+ case 3 {
+ host( "working/lmgoto.rl", 80 ) ${${te = p+1;host( "working/lmgoto.rl", 80 ) ${ token( TK_Slit );}$}$}$
+ }
+ case 2 {
+ host( "working/lmgoto.rl", 81 ) ${${te = p+1;host( "working/lmgoto.rl", 81 ) ${ token( TK_Dlit );}$}$}$
+ }
+ case 29 {
+ host( "working/lmgoto.rl", 92 ) ${${te = p+1;host( "working/lmgoto.rl", 92 ) ${ token( TK_Float );}$}$}$
+ }
+ case 37 {
+ host( "working/lmgoto.rl", 95 ) ${${te = p+1;host( "working/lmgoto.rl", 95 ) ${ token( TK_IntegerDecimal );}$}$}$
+ }
+ case 36 {
+ host( "working/lmgoto.rl", 98 ) ${${te = p+1;host( "working/lmgoto.rl", 98 ) ${ token( TK_IntegerOctal );}$}$}$
+ }
+ case 39 {
+ host( "working/lmgoto.rl", 101 ) ${${te = p+1;host( "working/lmgoto.rl", 101 ) ${ token( TK_IntegerHex );}$}$}$
+ }
+ case 40 {
+ host( "working/lmgoto.rl", 104 ) ${${te = p+1;host( "working/lmgoto.rl", 104 ) ${token( TK_NameSep );}$}$}$
+ }
+ case 41 {
+ host( "working/lmgoto.rl", 105 ) ${${te = p+1;host( "working/lmgoto.rl", 105 ) ${token( TK_EqualsEquals );}$}$}$
+ }
+ case 15 {
+ host( "working/lmgoto.rl", 106 ) ${${te = p+1;host( "working/lmgoto.rl", 106 ) ${token( TK_NotEquals );}$}$}$
+ }
+ case 17 {
+ host( "working/lmgoto.rl", 107 ) ${${te = p+1;host( "working/lmgoto.rl", 107 ) ${token( TK_AndAnd );}$}$}$
+ }
+ case 45 {
+ host( "working/lmgoto.rl", 108 ) ${${te = p+1;host( "working/lmgoto.rl", 108 ) ${token( TK_OrOr );}$}$}$
+ }
+ case 19 {
+ host( "working/lmgoto.rl", 109 ) ${${te = p+1;host( "working/lmgoto.rl", 109 ) ${token( TK_MultAssign );}$}$}$
+ }
+ case 32 {
+ host( "working/lmgoto.rl", 110 ) ${${te = p+1;host( "working/lmgoto.rl", 110 ) ${token( TK_DivAssign );}$}$}$
+ }
+ case 16 {
+ host( "working/lmgoto.rl", 111 ) ${${te = p+1;host( "working/lmgoto.rl", 111 ) ${token( TK_PercentAssign );}$}$}$
+ }
+ case 21 {
+ host( "working/lmgoto.rl", 112 ) ${${te = p+1;host( "working/lmgoto.rl", 112 ) ${token( TK_PlusAssign );}$}$}$
+ }
+ case 23 {
+ host( "working/lmgoto.rl", 113 ) ${${te = p+1;host( "working/lmgoto.rl", 113 ) ${token( TK_MinusAssign );}$}$}$
+ }
+ case 18 {
+ host( "working/lmgoto.rl", 114 ) ${${te = p+1;host( "working/lmgoto.rl", 114 ) ${token( TK_AmpAssign );}$}$}$
+ }
+ case 43 {
+ host( "working/lmgoto.rl", 115 ) ${${te = p+1;host( "working/lmgoto.rl", 115 ) ${token( TK_CaretAssign );}$}$}$
+ }
+ case 44 {
+ host( "working/lmgoto.rl", 116 ) ${${te = p+1;host( "working/lmgoto.rl", 116 ) ${token( TK_BarAssign );}$}$}$
+ }
+ case 20 {
+ host( "working/lmgoto.rl", 117 ) ${${te = p+1;host( "working/lmgoto.rl", 117 ) ${token( TK_PlusPlus );}$}$}$
+ }
+ case 22 {
+ host( "working/lmgoto.rl", 118 ) ${${te = p+1;host( "working/lmgoto.rl", 118 ) ${token( TK_MinusMinus );}$}$}$
+ }
+ case 25 {
+ host( "working/lmgoto.rl", 120 ) ${${te = p+1;host( "working/lmgoto.rl", 120 ) ${token( TK_ArrowStar );}$}$}$
+ }
+ case 26 {
+ host( "working/lmgoto.rl", 121 ) ${${te = p+1;host( "working/lmgoto.rl", 121 ) ${token( TK_DotStar );}$}$}$
+ }
+ case 5 {
+ host( "working/lmgoto.rl", 124 ) ${${te = p+1;host( "working/lmgoto.rl", 124 ) ${ token( TK_DotDotDot );}$}$}$
+ }
+ case 9 {
+ host( "working/lmgoto.rl", 127 ) ${${te = p+1;host( "working/lmgoto.rl", 127 ) ${ token( ts[0] );}$}$}$
+ }
+ case 30 {
+ host( "working/lmgoto.rl", 131 ) ${${te = p+1;host( "working/lmgoto.rl", 131 ) ${ isCxx = false; ${cs = 36;}$}$}$}$
+ }
+ case 31 {
+ host( "working/lmgoto.rl", 132 ) ${${te = p+1;host( "working/lmgoto.rl", 132 ) ${ isCxx = true; ${cs = 36;}$}$}$}$
+ }
+ case 42 {
+ host( "working/lmgoto.rl", 84 ) ${${te = p;p = p - 1;host( "working/lmgoto.rl", 84 ) ${ token( TK_Id ); }$}$}$
+ }
+ case 28 {
+ host( "working/lmgoto.rl", 92 ) ${${te = p;p = p - 1;host( "working/lmgoto.rl", 92 ) ${ token( TK_Float );}$}$}$
+ }
+ case 33 {
+ host( "working/lmgoto.rl", 95 ) ${${te = p;p = p - 1;host( "working/lmgoto.rl", 95 ) ${ token( TK_IntegerDecimal );}$}$}$
+ }
+ case 35 {
+ host( "working/lmgoto.rl", 98 ) ${${te = p;p = p - 1;host( "working/lmgoto.rl", 98 ) ${ token( TK_IntegerOctal );}$}$}$
+ }
+ case 38 {
+ host( "working/lmgoto.rl", 101 ) ${${te = p;p = p - 1;host( "working/lmgoto.rl", 101 ) ${ token( TK_IntegerHex );}$}$}$
+ }
+ case 24 {
+ host( "working/lmgoto.rl", 119 ) ${${te = p;p = p - 1;host( "working/lmgoto.rl", 119 ) ${token( TK_Arrow );}$}$}$
+ }
+ case 14 {
+ host( "working/lmgoto.rl", 127 ) ${${te = p;p = p - 1;host( "working/lmgoto.rl", 127 ) ${ token( ts[0] );}$}$}$
+ }
+ case 13 {
+ host( "working/lmgoto.rl", 134 ) ${${te = p;p = p - 1;host( "working/lmgoto.rl", 134 ) ${ token( TK_Whitespace );}$}$}$
+ }
+ case 6 {
+ host( "working/lmgoto.rl", 95 ) ${${p = ((te))-1;
+ host( "working/lmgoto.rl", 95 ) ${ token( TK_IntegerDecimal );}$}$}$
+ }
+ case 4 {
+ host( "working/lmgoto.rl", 127 ) ${${p = ((te))-1;
+ host( "working/lmgoto.rl", 127 ) ${ token( ts[0] );}$}$}$
+ }
+ case 1 {
+ host( "NONE", 1 ) ${${switch( act ) {
+ case 0 {
+ host( "NONE", 1 ) ${${cs = 0;}$}$ }
+ case 6 {
+ p = ((te))-1;
+ host( "working/lmgoto.rl", 84 ) ${ token( TK_Id ); }$ }
+ case 7 {
+ p = ((te))-1;
+ host( "working/lmgoto.rl", 92 ) ${ token( TK_Float );}$ }
+ case 8 {
+ p = ((te))-1;
+ host( "working/lmgoto.rl", 95 ) ${ token( TK_IntegerDecimal );}$ }
+ case 9 {
+ p = ((te))-1;
+ host( "working/lmgoto.rl", 98 ) ${ token( TK_IntegerOctal );}$ }
+ }}$
+ }$
+ }
+ case 12 {
+ host( "NONE", 1 ) ${${te = p+1;}$}$
+ host( "working/lmgoto.rl", 84 ) ${${act = 6;}$}$
+ }
+ case 27 {
+ host( "NONE", 1 ) ${${te = p+1;}$}$
+ host( "working/lmgoto.rl", 92 ) ${${act = 7;}$}$
+ }
+ case 11 {
+ host( "NONE", 1 ) ${${te = p+1;}$}$
+ host( "working/lmgoto.rl", 95 ) ${${act = 8;}$}$
+ }
+ case 34 {
+ host( "NONE", 1 ) ${${te = p+1;}$}$
+ host( "working/lmgoto.rl", 98 ) ${${act = 9;}$}$
+ }
+ }
+
+ switch ( _Scanner_to_state_actions[cs] ) {
+ case 46 {
+ host( "NONE", 1 ) ${${ts = nil;}$}$
+ }
+ case 7 {
+ host( "NONE", 1 ) ${${ts = nil;}$}$
+ host( "NONE", 1 ) ${${act = 0;}$}$
+ }
+ }
+
+ if ( cs == 0 )
+ _cont = 0;
+ if ( _cont == 1 )
+ p += 1;
+
+ }}
+ }
+ }
+ host( "working/lmgoto.rl", 161 ) @{
+
+ if ( cs == Scanner_error ) {
+ /* Machine failed before finding a token. */
+ cout << "PARSE ERROR" << endl;
+ }
+ }
+
+ int main()
+ {
+ Scanner scanner;
+ scanner.run(
+ "//hello*/\n"
+ "/*hi there*/ hello 0x88"
+ );
+ return 0;
+ }
+
+}@ \ No newline at end of file