flexfix

来自「Verilog Parser in Perl」· 代码 · 共 39 行

TXT
39
字号
#!/usr/bin/perl -w######################################################################## Copyright 2002-2009 by Wilson Snyder.## This program is free software; you can redistribute it and/or modify it# under the terms of either the GNU Lesser General Public License or the# Perl Artistic License.## 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 Perl Artistic License# along with this module; see the file COPYING.  If not, see# www.cpan.org######################################################################## DESCRIPTION: Edits flex output to get around various broken flex issues.foreach my $line (<STDIN>) {    # Fix flex 2.5.4 namespace omission    $line =~ s/^class istream;/\#include <iostream>\nusing namespace std;\n/;    # Fix flex 2.5.31 redefinition    $line =~ s!(\#define\s+yyFlexLexer\s+yyFlexLexer)!//flexfix: $1!g;    # Fix flex 2.5.1 yytext_ptr undef    $line =~ s!(\#undef\s+yytext_ptr)!//flexfix: $1!g;    # Fix flex 2.5.4 and GCC 4.1.0 warn_unused_result    $line =~ s!\(void\) *fwrite\((.*)\)!if (fwrite($1)) {}!g;    # Fix flex 2.5.33 and GCC 4.1.2 "warning: comparison between signed and unsigned integer expressions" in YY_INPUT    $line =~ s!for \( n = 0; n < max_size && !for ( n = 0; ((size_t)n < (size_t)max_size) && !g;    # Fix flex 2.5.4 and GCC 4.0.2 under FLEX_DEBUG    $line =~ s!--accepting rule at line %d !--accepting rule at line %ld !g;    print "$line";}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?