@ -10,148 +10,121 @@
using namespace fmt ;
# line 42 ".\\scratchpad\\testragel.rl"
# line 66 ".\\scratchpad\\testragel.rl"
# line 13 ".\\scratchpad\\testragel.cpp"
static const char _foo_actions [ ] = {
0 , 1 , 0 , 1 , 1 , 1 , 2 , 1 ,
3 , 1 , 4 , 2 , 1 , 5 , 2 , 1 ,
6 , 2 , 1 , 7 , 2 , 1 , 8 , 2 ,
1 , 9 , 2 , 1 , 1 0
0 , 1 , 0 , 1 , 1 , 1 , 8 , 1 ,
9 , 2 , 1 , 2 , 2 , 1 , 3 , 2 ,
1 , 4 , 2 , 1 , 5 , 2 , 6 , 0 ,
2 , 7 , 0 , 2 , 8 , 0
} ;
static const char _foo_key_offsets [ ] = {
0 , 0 , 1 , 5 , 7 , 10 , 15 , 19 ,
23 , 27 , 29 , 32 , 34 , 37 , 39 , 42 ,
46 , 48 , 51 , 53 , 56 , 61 , 65 , 69 ,
73 , 75 , 78 , 80 , 83 , 85 , 88 , 92 ,
94 , 97 , 99 , 102
0 , 0 , 1 , 6 , 10 , 12 , 15 , 20 ,
24 , 28 , 32 , 34 , 37 , 39 , 42 , 44 ,
47 , 51 , 53 , 56 , 58 , 61 , 66 , 70 ,
74 , 75
} ;
static const char _foo_trans_keys [ ] = {
91 , 59 , 109 , 48 , 57 , 48 , 57 , 109 ,
48 , 57 , 56 , 59 , 109 , 48 , 57 , 59 ,
109 , 48 , 57 , 50 , 53 , 48 , 57 , 59 ,
91 , 51 , 52 , 109 , 48 , 57 , 59 , 109 ,
48 , 57 , 48 , 57 , 109 , 48 , 57 , 56 ,
59 , 109 , 48 , 57 , 59 , 109 , 48 , 57 ,
50 , 53 , 48 , 57 , 59 , 109 , 48 , 57 ,
48 , 57 , 59 , 48 , 57 , 48 , 57 , 59 ,
48 , 57 , 48 , 57 , 109 , 48 , 57 , 59 ,
109 , 48 , 57 , 48 , 57 , 59 , 48 , 57 ,
48 , 57 , 59 , 48 , 57 , 48 , 57 , 109 ,
48 , 57 , 59 , 109 , 48 , 57 , 48 , 57 ,
59 , 48 , 57 , 48 , 57 , 109 , 48 , 57 ,
56 , 59 , 109 , 48 , 57 , 59 , 109 , 48 ,
57 , 50 , 53 , 48 , 57 , 59 , 109 , 48 ,
57 , 48 , 57 , 59 , 48 , 57 , 48 , 57 ,
59 , 48 , 57 , 48 , 57 , 109 , 48 , 57 ,
59 , 109 , 48 , 57 , 48 , 57 , 59 , 48 ,
57 , 48 , 57 , 109 , 48 , 57 , 27 , 51 ,
52 , 48 , 57 , 0
48 , 57 , 109 , 48 , 57 , 56 , 59 , 109 ,
48 , 57 , 59 , 109 , 48 , 57 , 50 , 53 ,
48 , 57 , 27 , 27 , 0
} ;
static const char _foo_single_lengths [ ] = {
0 , 1 , 2 , 0 , 1 , 3 , 2 , 2 ,
2 , 0 , 1 , 0 , 1 , 0 , 1 , 2 ,
0 , 1 , 0 , 1 , 3 , 2 , 2 , 2 ,
0 , 1 , 0 , 1 , 0 , 1 , 2 , 0 ,
1 , 0 , 1 , 3
0 , 1 , 3 , 2 , 0 , 1 , 3 , 2 ,
2 , 2 , 0 , 1 , 0 , 1 , 0 , 1 ,
2 , 0 , 1 , 0 , 1 , 3 , 2 , 2 ,
1 , 1
} ;
static const char _foo_range_lengths [ ] = {
0 , 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
0 , 0
} ;
static const unsigned char _foo_index_offsets [ ] = {
0 , 0 , 2 , 6 , 8 , 11 , 16 , 20 ,
24 , 28 , 30 , 33 , 35 , 38 , 40 , 43 ,
47 , 49 , 52 , 54 , 57 , 62 , 66 , 70 ,
74 , 76 , 79 , 81 , 84 , 86 , 89 , 93 ,
95 , 98 , 100 , 103
static const char _foo_index_offsets [ ] = {
0 , 0 , 2 , 7 , 11 , 13 , 16 , 21 ,
25 , 29 , 33 , 35 , 38 , 40 , 43 , 45 ,
48 , 52 , 54 , 57 , 59 , 62 , 67 , 71 ,
75 , 77
} ;
static const char _foo_trans_targs [ ] = {
35 , 0 , 3 , 35 , 2 , 0 , 4 , 0 ,
35 , 4 , 0 , 6 , 3 , 35 , 2 , 0 ,
7 , 35 , 2 , 0 , 8 , 15 , 4 , 0 ,
9 , 35 , 4 , 0 , 10 , 0 , 11 , 10 ,
0 , 12 , 0 , 13 , 12 , 0 , 14 , 0 ,
35 , 14 , 0 , 16 , 35 , 4 , 0 , 17 ,
0 , 18 , 17 , 0 , 19 , 0 , 35 , 19 ,
0 , 21 , 3 , 35 , 2 , 0 , 22 , 35 ,
2 , 0 , 23 , 30 , 4 , 0 , 24 , 35 ,
4 , 0 , 25 , 0 , 26 , 25 , 0 , 27 ,
0 , 28 , 27 , 0 , 29 , 0 , 35 , 29 ,
0 , 31 , 35 , 4 , 0 , 32 , 0 , 33 ,
32 , 0 , 34 , 0 , 35 , 34 , 0 , 1 ,
5 , 20 , 2 , 0 , 0
static const char _foo_indicies [ ] = {
0 , 1 , 3 , 4 , 5 , 2 , 1 , 7 ,
8 , 6 , 1 , 9 , 1 , 11 , 10 , 1 ,
12 , 7 , 8 , 6 , 1 , 13 , 8 , 6 ,
1 , 14 , 15 , 9 , 1 , 16 , 11 , 10 ,
1 , 17 , 1 , 19 , 18 , 1 , 20 , 1 ,
22 , 21 , 1 , 23 , 1 , 25 , 24 , 1 ,
26 , 11 , 10 , 1 , 27 , 1 , 29 , 28 ,
1 , 30 , 1 , 32 , 31 , 1 , 33 , 7 ,
8 , 6 , 1 , 34 , 8 , 6 , 1 , 35 ,
36 , 9 , 1 , 37 , 1 , 38 , 1 , 0
} ;
static const char _foo_trans_actions [ ] = {
9 , 0 , 3 , 23 , 0 , 0 , 1 , 0 ,
26 , 0 , 0 , 0 , 3 , 23 , 0 , 0 ,
3 , 23 , 0 , 0 , 1 , 1 , 1 , 0 ,
0 , 26 , 0 , 0 , 1 , 0 , 3 , 0 ,
0 , 1 , 0 , 3 , 0 , 0 , 1 , 0 ,
17 , 0 , 0 , 0 , 26 , 0 , 0 , 1 ,
0 , 3 , 0 , 0 , 1 , 0 , 11 , 0 ,
0 , 0 , 3 , 23 , 0 , 0 , 3 , 23 ,
0 , 0 , 1 , 1 , 1 , 0 , 0 , 26 ,
0 , 0 , 1 , 0 , 3 , 0 , 0 , 1 ,
0 , 3 , 0 , 0 , 1 , 0 , 20 , 0 ,
0 , 0 , 26 , 0 , 0 , 1 , 0 , 3 ,
0 , 0 , 1 , 0 , 14 , 0 , 0 , 0 ,
1 , 1 , 1 , 0 , 0
static const char _foo_trans_targs [ ] = {
2 , 0 , 3 , 6 , 21 , 25 , 3 , 4 ,
25 , 5 , 5 , 25 , 7 , 8 , 9 , 16 ,
10 , 11 , 11 , 12 , 13 , 13 , 14 , 15 ,
15 , 25 , 17 , 18 , 18 , 19 , 20 , 20 ,
25 , 22 , 23 , 9 , 16 , 1 , 1
} ;
static const char _foo_to_state _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 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 5
static const char _foo_trans_actions [ ] = {
0 , 0 , 27 , 27 , 27 , 5 , 0 , 3 ,
15 , 1 , 0 , 18 , 0 , 3 , 24 , 24 ,
0 , 1 , 0 , 3 , 1 , 0 , 3 , 1 ,
0 , 12 , 0 , 1 , 0 , 3 , 1 , 0 ,
9 , 0 , 3 , 21 , 21 , 0 , 7
} ;
static const char _foo_from_state_actions [ ] = {
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
static const char _foo_eof_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 ,
0 , 0 , 0 , 7
0 , 7
} ;
static const int foo_start = 35 ;
static const int foo_first_final = 35 ;
static const int foo_start = 24 ;
static const int foo_first_final = 24 ;
static const int foo_error = 0 ;
static const int foo_en_main = 35 ;
static const int foo_en_main = 24 ;
# line 45 ".\\scratchpad\\testragel.rl"
# line 69 ".\\scratchpad\\testragel.rl"
void parse_ansi ( std : : string_view & codes ) {
const char * start = NULL ;
int cs = 0 ;
size_t act = 0 ;
size_t value = 0 ;
const char * p = codes . data ( ) ;
const char * pe = p + codes . size ( ) ;
const char * ts = p ;
const char * te = pe ;
const char * eof = pe ;
# line 136 ".\\scratchpad\\testragel.cpp"
# line 112 ".\\scratchpad\\testragel.cpp"
{
cs = foo_start ;
ts = 0 ;
te = 0 ;
act = 0 ;
}
# line 5 7 ".\\scratchpad\\testragel.rl"
# line 79 ".\\scratchpad\\testragel.rl"
# line 142 ".\\scratchpad\\testragel.cpp"
# line 115 ".\\scratchpad\\testragel.cpp"
{
int _klen ;
unsigned int _trans ;
@ -164,18 +137,6 @@ void parse_ansi(std::string_view &codes) {
if ( cs = = 0 )
goto _out ;
_resume :
_acts = _foo_actions + _foo_from_state_actions [ cs ] ;
_nacts = ( unsigned int ) * _acts + + ;
while ( _nacts - - > 0 ) {
switch ( * _acts + + ) {
case 3 :
# line 1 "NONE"
{ ts = p ; }
break ;
# line 161 ".\\scratchpad\\testragel.cpp"
}
}
_keys = _foo_trans_keys + _foo_key_offsets [ cs ] ;
_trans = _foo_index_offsets [ cs ] ;
@ -225,6 +186,7 @@ _resume:
}
_match :
_trans = _foo_indicies [ _trans ] ;
cs = _foo_trans_targs [ _trans ] ;
if ( _foo_trans_actions [ _trans ] = = 0 )
@ -245,66 +207,84 @@ _match:
case 1 :
# line 17 ".\\scratchpad\\testragel.rl"
{
size_t value = 0 ;
auto [ ptr , ec ] = std : : from_chars ( start , p , value ) ;
dbc : : check ( ec = = std : : errc ( ) , " error in number parsing " ) ;
println ( " NUMBER {} " , value ) ;
}
break ;
case 2 :
# line 23 ".\\scratchpad\\testragel.rl"
{
println ( " 256 color " ) ;
}
break ;
case 3 :
# line 27 ".\\scratchpad\\testragel.rl"
{
println ( " true color " ) ;
}
break ;
case 4 :
# line 34 ".\\scratchpad\\testragel.rl"
{ te = p + 1 ; { println ( " START " ) ; } }
# line 31 ".\\scratchpad\\testragel.rl"
{
println ( " single color " ) ;
}
break ;
case 5 :
# line 35 ".\\scratchpad\\testragel.rl"
{ te = p + 1 ; { println ( " fg 256 color " ) ; } }
{
println ( " basic color " ) ;
}
break ;
case 6 :
# line 36 ".\\scratchpad\\testragel.rl"
{ te = p + 1 ; { println ( " bg 256 color " ) ; } }
# line 39 ".\\scratchpad\\testragel.rl"
{
println ( " BG " ) ;
}
break ;
case 7 :
# line 37 ".\\scratchpad\\testragel.rl"
{ te = p + 1 ; { println ( " fg true color " ) ; } }
# line 43 ".\\scratchpad\\testragel.rl"
{
println ( " FG " ) ;
}
break ;
case 8 :
# line 38 ".\\scratchpad\\testragel.rl"
{ te = p + 1 ; { println ( " bg true color " ) ; } }
# line 57 ".\\scratchpad\\testragel.rl"
{ println ( " START " ) ; }
break ;
case 9 :
# line 39 ".\\scratchpad\\testragel.rl"
{ te = p + 1 ; { println ( " single " ) ; } }
break ;
case 10 :
# line 40 ".\\scratchpad\\testragel.rl"
{ te = p + 1 ; { println ( " basic " ) ; } }
# line 64 ".\\scratchpad\\testragel.rl"
{ println ( " END " ) ; }
break ;
# line 258 ".\\scratchpad\\testragel.cpp"
# line 236 ".\\scratchpad\\testragel.cpp"
}
}
_again :
_acts = _foo_actions + _foo_to_state_actions [ cs ] ;
_nacts = ( unsigned int ) * _acts + + ;
while ( _nacts - - > 0 ) {
switch ( * _acts + + ) {
case 2 :
# line 1 "NONE"
{ ts = 0 ; }
break ;
# line 269 ".\\scratchpad\\testragel.cpp"
}
}
if ( cs = = 0 )
goto _out ;
if ( + + p ! = pe )
goto _resume ;
_test_eof : { }
if ( p = = eof )
{
const char * __acts = _foo_actions + _foo_eof_actions [ cs ] ;
unsigned int __nacts = ( unsigned int ) * __acts + + ;
while ( __nacts - - > 0 ) {
switch ( * __acts + + ) {
case 9 :
# line 64 ".\\scratchpad\\testragel.rl"
{ println ( " END " ) ; }
break ;
# line 254 ".\\scratchpad\\testragel.cpp"
}
}
}
_out : { }
}
# line 58 ".\\scratchpad\\testragel.rl"
# line 80 ".\\scratchpad\\testragel.rl"
}
int main ( ) {