/* * Copyright (C) 2022 Nick Downing * SPDX-License-Identifier: GPL-2.0-only * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; version 2. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., 51 * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ %start DATA DATA_TEXT REM_TEXT STR_LITERAL %% { " " \" { ECHO() yy_push_state(STR_LITERAL) } } { E\ *N\ *D { yyout.write('\x80') } F\ *O\ *R { yyout.write('\x81') } N\ *E\ *X\ *T { yyout.write('\x82') } D\ *A\ *T\ *A { yyout.write('\x83') BEGIN(DATA) } I\ *N\ *P\ *U\ *T { yyout.write('\x84') } D\ *E\ *L { yyout.write('\x85') } D\ *I\ *M { yyout.write('\x86') } R\ *E\ *A\ *D { yyout.write('\x87') } G\ *R { yyout.write('\x88') } T\ *E\ *X\ *T { yyout.write('\x89') } P\ *R\ *\# { yyout.write('\x8a') } I\ *N\ *\# { yyout.write('\x8b') } C\ *A\ *L\ *L { yyout.write('\x8c') } P\ *L\ *O\ *T { yyout.write('\x8d') } H\ *L\ *I\ *N { yyout.write('\x8e') } V\ *L\ *I\ *N { yyout.write('\x8f') } H\ *G\ *R\ *2 { yyout.write('\x90') } H\ *G\ *R { yyout.write('\x91') } H\ *C\ *O\ *L\ *O\ *R\ *\= { yyout.write('\x92') } H\ *P\ *L\ *O\ *T { yyout.write('\x93') } D\ *R\ *A\ *W { yyout.write('\x94') } X\ *D\ *R\ *A\ *W { yyout.write('\x95') } H\ *T\ *A\ *B { yyout.write('\x96') } H\ *O\ *M\ *E { yyout.write('\x97') } R\ *O\ *T\ *\= { yyout.write('\x98') } S\ *C\ *A\ *L\ *E\ *\= { yyout.write('\x99') } S\ *H\ *L\ *O\ *A\ *D { yyout.write('\x9a') } T\ *R\ *A\ *C\ *E { yyout.write('\x9b') } N\ *O\ *T\ *R\ *A\ *C\ *E { yyout.write('\x9c') } N\ *O\ *R\ *M\ *A\ *L { yyout.write('\x9d') } I\ *N\ *V\ *E\ *R\ *S\ *E { yyout.write('\x9e') } F\ *L\ *A\ *S\ *H { yyout.write('\x9f') } C\ *O\ *L\ *O\ *R\ *\= { yyout.write('\xa0') } P\ *O\ *P { yyout.write('\xa1') } V\ *T\ *A\ *B { yyout.write('\xa2') } H\ *I\ *M\ *E\ *M\ *\: { yyout.write('\xa3') } L\ *O\ *M\ *E\ *M\ *\: { yyout.write('\xa4') } O\ *N\ *E\ *R\ *R { yyout.write('\xa5') } R\ *E\ *S\ *U\ *M\ *E { yyout.write('\xa6') } R\ *E\ *C\ *A\ *L\ *L { yyout.write('\xa7') } S\ *T\ *O\ *R\ *E { yyout.write('\xa8') } S\ *P\ *E\ *E\ *D\ *\= { yyout.write('\xa9') } L\ *E\ *T { yyout.write('\xaa') } G\ *O\ *T\ *O { yyout.write('\xab') } R\ *U\ *N { yyout.write('\xac') } I\ *F { yyout.write('\xad') } R\ *E\ *S\ *T\ *O\ *R\ *E { yyout.write('\xae') } \& { yyout.write('\xaf') } G\ *O\ *S\ *U\ *B { yyout.write('\xb0') } R\ *E\ *T\ *U\ *R\ *N { yyout.write('\xb1') } R\ *E\ *M { yyout.write('\xb2') BEGIN(REM_TEXT) } S\ *T\ *O\ *P { yyout.write('\xb3') } O\ *N { yyout.write('\xb4') } W\ *A\ *I\ *T { yyout.write('\xb5') } L\ *O\ *A\ *D { yyout.write('\xb6') } S\ *A\ *V\ *E { yyout.write('\xb7') } D\ *E\ *F { yyout.write('\xb8') } P\ *O\ *K\ *E { yyout.write('\xb9') } P\ *R\ *I\ *N\ *T { yyout.write('\xba') } C\ *O\ *N\ *T { yyout.write('\xbb') } L\ *I\ *S\ *T { yyout.write('\xbc') } C\ *L\ *E\ *A\ *R { yyout.write('\xbd') } G\ *E\ *T { yyout.write('\xbe') } N\ *E\ *W { yyout.write('\xbf') } T\ *A\ *B\ *\( { yyout.write('\xc0') } T\ *O { yyout.write('\xc1') } F\ *N { yyout.write('\xc2') } S\ *P\ *C\ *\( { yyout.write('\xc3') } T\ *H\ *E\ *N { yyout.write('\xc4') } A\ *T { yyout.write('\xc5') } N\ *O\ *T { yyout.write('\xc6') } S\ *T\ *E\ *P { yyout.write('\xc7') } \+ { yyout.write('\xc8') } \- { yyout.write('\xc9') } \* { yyout.write('\xca') } \/ { yyout.write('\xcb') } \^ { yyout.write('\xcc') } A\ *N\ *D { yyout.write('\xcd') } O\ *R { yyout.write('\xce') } \> { yyout.write('\xcf') } \= { yyout.write('\xd0') } \< { yyout.write('\xd1') } S\ *G\ *N { yyout.write('\xd2') } I\ *N\ *T { yyout.write('\xd3') } A\ *B\ *S { yyout.write('\xd4') } U\ *S\ *R { yyout.write('\xd5') } F\ *R\ *E { yyout.write('\xd6') } S\ *C\ *R\ *N\ *\( { yyout.write('\xd7') } P\ *D\ *L { yyout.write('\xd8') } P\ *O\ *S { yyout.write('\xd9') } S\ *Q\ *R { yyout.write('\xda') } R\ *N\ *D { yyout.write('\xdb') } L\ *O\ *G { yyout.write('\xdc') } E\ *X\ *P { yyout.write('\xdd') } C\ *O\ *S { yyout.write('\xde') } S\ *I\ *N { yyout.write('\xdf') } T\ *A\ *N { yyout.write('\xe0') } A\ *T\ *N { yyout.write('\xe1') } P\ *E\ *E\ *K { yyout.write('\xe2') } L\ *E\ *N { yyout.write('\xe3') } S\ *T\ *R\ *\$ { yyout.write('\xe4') } V\ *A\ *L { yyout.write('\xe5') } A\ *S\ *C { yyout.write('\xe6') } C\ *H\ *R\ *\$ { yyout.write('\xe7') } L\ *E\ *F\ *T\ *\$ { yyout.write('\xe8') } R\ *I\ *G\ *H\ *T\ *\$ { yyout.write('\xe9') } M\ *I\ *D\ *\$ { yyout.write('\xea') } } { :|\n { ECHO() BEGIN(INITIAL) } } { [^ ,] { ECHO() BEGIN(DATA_TEXT) } } { , { ECHO() BEGIN(DATA) } } { \n { ECHO() BEGIN(INITIAL) } } { \" { ECHO() yy_pop_state() } \n { ECHO() yy_pop_state() BEGIN(INITIAL) } } %% if __name__ == '__main__': while yylex(): pass