feature_to_c.sh (1927B)
1#!/bin/sh 2 3# Convert text files to compilable C arrays. 4# 5# Copyright (C) 2007 Free Software Foundation, Inc. 6# 7# This file is part of GDB. 8# 9# This program is free software; you can redistribute it and/or modify 10# it under the terms of the GNU General Public License as published by 11# the Free Software Foundation; either version 2 of the License, or 12# (at your option) any later version. 13# 14# This program is distributed in the hope that it will be useful, 15# but WITHOUT ANY WARRANTY; without even the implied warranty of 16# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17# GNU General Public License for more details. 18# 19# You should have received a copy of the GNU General Public License 20# along with this program; if not, see <http://www.gnu.org/licenses/>. 21 22if test -z "$1"; then 23 echo "Usage: $0 INPUTFILE..." 24 exit 1 25fi 26 27for input; do 28 arrayname=xml_feature_$(echo $input | sed 's,.*/,,; s/[-.]/_/g') 29 30 ${AWK:-awk} 'BEGIN { n = 0 31 printf "#include \"qemu/osdep.h\"\n" 32 print "static const char '$arrayname'[] = {" 33 for (i = 0; i < 255; i++) 34 _ord_[sprintf("%c", i)] = i 35 } { 36 split($0, line, ""); 37 printf " " 38 for (i = 1; i <= length($0); i++) { 39 c = line[i] 40 if (c == "'\''") { 41 printf "'\''\\'\'''\'', " 42 } else if (c == "\\") { 43 printf "'\''\\\\'\'', " 44 } else if (_ord_[c] >= 32 && _ord_[c] < 127) { 45 printf "'\''%s'\'', ", c 46 } else { 47 printf "'\''\\%03o'\'', ", _ord_[c] 48 } 49 if (i % 10 == 0) 50 printf "\n " 51 } 52 printf "'\''\\n'\'', \n" 53 } END { 54 print " 0 };" 55 }' < $input 56done 57 58echo 59echo "const char *const xml_builtin[][2] = {" 60 61for input; do 62 basename=$(echo $input | sed 's,.*/,,') 63 arrayname=xml_feature_$(echo $input | sed 's,.*/,,; s/[-.]/_/g') 64 echo " { \"$basename\", $arrayname }," 65done 66 67echo " { (char *)0, (char *)0 }" 68echo "};"