diff options
author | Adrian Thurston <thurston@colm.net> | 2019-09-09 09:34:14 -0600 |
---|---|---|
committer | Adrian Thurston <thurston@colm.net> | 2019-09-09 09:34:14 -0600 |
commit | 2d8e9c3f5c0417d6237c945c50f92bf8d28b32d5 (patch) | |
tree | e463c784309e402c1c7bb89247596165b07ad8d1 /test/cases/rlhc.d/case/eofact_crack.crk-K-T1--var-backend.exp | |
parent | c0323a27ad612db4fa7d3d5c25c3e9611bcf874b (diff) | |
parent | c171cdda894fa59515d1bdc1e00cace185366e7f (diff) | |
download | colm-2d8e9c3f5c0417d6237c945c50f92bf8d28b32d5.tar.gz |
mega-merge of pruned test code
Diffstat (limited to 'test/cases/rlhc.d/case/eofact_crack.crk-K-T1--var-backend.exp')
-rw-r--r-- | test/cases/rlhc.d/case/eofact_crack.crk-K-T1--var-backend.exp | 282 |
1 files changed, 282 insertions, 0 deletions
diff --git a/test/cases/rlhc.d/case/eofact_crack.crk-K-T1--var-backend.exp b/test/cases/rlhc.d/case/eofact_crack.crk-K-T1--var-backend.exp new file mode 100644 index 00000000..ba3a71fa --- /dev/null +++ b/test/cases/rlhc.d/case/eofact_crack.crk-K-T1--var-backend.exp @@ -0,0 +1,282 @@ +import crack.io cout; +import crack.lang Buffer; + + + + + + + + +const array[int16 ] _eofact_key_offsets = [ 0, 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 11, 0 , ]; +const array[byte ] _eofact_trans_keys = [ 104, 116, 101, 108, 108, 111, 104, 101, 114, 101, 10, 0, ]; +const array[int16 ] _eofact_single_lengths = [ 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0 , ]; +const array[int16 ] _eofact_range_lengths = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , ]; +const array[int16 ] _eofact_index_offsets = [ 0, 0, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 22, 0 , ]; +const array[int16 ] _eofact_trans_cond_spaces = [ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0 , ]; +const array[int16 ] _eofact_trans_offsets = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 0 , ]; +const array[int16 ] _eofact_trans_lengths = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0 , ]; +const array[int16 ] _eofact_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 , ]; +const array[int16 ] _eofact_cond_targs = [ 2, 6, 0, 3, 0, 4, 0, 5, 0, 10, 0, 7, 0, 8, 0, 9, 0, 12, 0, 11, 0, 0, 0, 0 , ]; +const array[int16 ] _eofact_cond_actions = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , ]; +const array[int16 ] _eofact_eof_actions = [ 0, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 0, 5, 0 , ]; +const array[int16 ] _eofact_nfa_targs = [ 0, 0 , ]; +const array[int16 ] _eofact_nfa_offsets = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , ]; +const array[int16 ] _eofact_nfa_push_actions = [ 0, 0 , ]; +const array[int16 ] _eofact_nfa_pop_trans = [ 0, 0 , ]; +const int eofact_start = 1; +const int eofact_first_final = 10; +const int eofact_error = 0; +const int eofact_en_main = 1; +void m( String s ) +{ + byteptr data = s.buffer; + int p = 0; + int pe = s.size; + int cs; + String buffer; + int eof = pe; + + if ( 1 ) { + cs = int ( eofact_start ); + + } + if ( 1 ) { + int _klen; + int _keys = 0; + int _ckeys = 0; + int _cpc; + uint32 _trans; + uint32 _cond = 0; + uint32 _have = 0; + uint32 _cont = 1; + while ( _cont == 1 ) + { + if ( cs == 0 ) + _cont = 0; + + _have = 0; + if ( p == pe ) + { + if ( p == eof ) + { + if ( _have == 0 ) + { + if ( _eofact_eof_actions[cs] == 2 ) { + if ( 1 ) { + cout.format( "a1\n" ); + + } + + } + else if ( _eofact_eof_actions[cs] == 4 ) { + if ( 1 ) { + cout.format( "a2\n" ); + + } + + } + else if ( _eofact_eof_actions[cs] == 3 ) { + if ( 1 ) { + cout.format( "a3\n" ); + + } + + } + else if ( _eofact_eof_actions[cs] == 5 ) { + if ( 1 ) { + cout.format( "a4\n" ); + + } + + } + else if ( _eofact_eof_actions[cs] == 1 ) { + if ( 1 ) { + cout.format( "a1\n" ); + + } + if ( 1 ) { + cout.format( "a3\n" ); + + } + + } + ; + + } + + + } + + if ( _have == 0 ) + _cont = 0; + + + } + + if ( _cont == 1 ) + { + if ( _have == 0 ) + { + _keys = _eofact_key_offsets[cs]; + _trans = uint32 ( _eofact_index_offsets[cs] ); + _have = 0; + _klen = int ( _eofact_single_lengths[cs] ); + if ( _klen > 0 ) + { + int _lower = 0; + int _mid = 0; + int _upper = 0; + _lower = _keys; + _upper = _keys + _klen - 1; + while ( _upper >= _lower && _have == 0 ) + { + _mid = _lower + ((_upper-_lower)>> 1); + if ( (data[p ])< _eofact_trans_keys[_mid ] ) + _upper = _mid - 1; + + else if ( (data[p ])> _eofact_trans_keys[_mid ] ) + _lower = _mid + 1; + + else + { + _trans += uint32 ( (_mid - _keys) ); + _have = 1; + + } + + + } + + if ( _have == 0 ) + { + _keys += _klen; + _trans += uint32 ( _klen ); + + } + + + } + + if ( _have == 0 ) + { + _klen = int ( _eofact_range_lengths[cs] ); + if ( _klen > 0 ) + { + int _lower = 0; + int _mid = 0; + int _upper = 0; + _lower = _keys; + _upper = _keys + (_klen<<1)- 2; + while ( _have == 0 && _lower <= _upper ) + { + _mid = _lower + (((_upper-_lower)>> 1)& ~1); + if ( (data[p ])< _eofact_trans_keys[_mid ] ) + _upper = _mid - 2; + + else if ( (data[p ])> _eofact_trans_keys[_mid + 1 ] ) + _lower = _mid + 2; + + else + { + _trans += uint32 ( ((_mid - _keys)>>1) ); + _have = 1; + + } + + + } + + if ( _have == 0 ) + _trans += uint32 ( _klen ); + + + } + + + } + + _ckeys = _eofact_trans_offsets[_trans]; + _klen = int ( _eofact_trans_lengths[_trans] ); + _cond = uint32 ( _eofact_trans_offsets[_trans] ); + _have = 0; + _cpc = 0; + if ( 1 ) { + int _lower = 0; + int _mid = 0; + int _upper = 0; + _lower = _ckeys; + _upper = _ckeys + _klen - 1; + while ( _have == 0 && _lower <= _upper ) + { + _mid = _lower + ((_upper-_lower)>> 1); + if ( _cpc < int ( _eofact_cond_keys[_mid ] ) ) + _upper = _mid - 1; + + else if ( _cpc > int ( _eofact_cond_keys[_mid ] ) ) + _lower = _mid + 1; + + else + { + _cond += uint32 ( (_mid - _ckeys) ); + _have = 1; + + } + + + } + + if ( _have == 0 ) + { + cs = 0; + _cont = 0; + + } + + + } + + } + + if ( _cont == 1 ) + { + cs = int ( _eofact_cond_targs[_cond] ); + if ( cs == 0 ) + _cont = 0; + + if ( _cont == 1 ) + p += 1; + + + } + + + } + + + } + + + } + if ( cs >= eofact_first_final ) { + cout `ACCEPT\n`; + } + else { + cout `FAIL\n`; + } +} + +void main() +{ + m( "" ); + m( "h" ); + m( "hell" ); + m( "hello" ); + m( "hello\n" ); + m( "t" ); + m( "ther" ); + m( "there" ); + m( "friend" ); +} + +main(); |