1 #! /usr/bin/perl 2 # 3 # This file is part of the WebKit project 4 # 5 # Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) 6 # 7 # This library is free software; you can redistribute it and/or 8 # modify it under the terms of the GNU Library General Public 9 # License as published by the Free Software Foundation; either 10 # version 2 of the License, or (at your option) any later version. 11 # 12 # This library is distributed in the hope that it will be useful, 13 # but WITHOUT ANY WARRANTY; without even the implied warranty of 14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 # Library General Public License for more details. 16 # 17 # You should have received a copy of the GNU Library General Public License 18 # along with this library; see the file COPYING.LIB. If not, write to 19 # the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 20 # Boston, MA 02110-1301, USA. 21 use strict; 22 use warnings; 23 24 my $grammar = $ARGV[0]; 25 my $fileBase = $ARGV[1]; 26 27 system("bison -d -p cssyy " . $grammar . " -o " . $fileBase . ".tab.c"); 28 29 open HEADER, ">" . $fileBase . ".h" or die; 30 print HEADER << "EOF"; 31 #ifndef CSSGRAMMAR_H 32 #define CSSGRAMMAR_H 33 EOF 34 35 open HPP, "<" . $fileBase . ".tab.h" or die; 36 while (<HPP>) { 37 print HEADER; 38 } 39 close HPP; 40 41 print HEADER "#endif\n"; 42 43 close HEADER; 44 45 unlink($fileBase . ".tab.h"); 46 47 open CPP, ">" . $fileBase . ".cpp" or die; 48 open GENSRC, "<" . $fileBase . ".tab.c" or die; 49 while (<GENSRC>) { 50 print CPP; 51 } 52 close GENSRC; 53 close CPP; 54 55 unlink($fileBase . ".tab.c"); 56