File: code

package info (click to toggle)
genparse 0.9.3-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 3,456 kB
  • sloc: ansic: 8,766; cpp: 6,059; sh: 5,336; java: 578; yacc: 482; lex: 315; makefile: 302
file content (124 lines) | stat: -rwxr-xr-x 3,895 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
#!/bin/bash
# Test __CODE__

# Copyright (C) 2008 - 2016 Michael Geng <linux@MichaelGeng.de>

# 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; either version 2 of the License, or
# (at your option) any later version.

# 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, see <http://www.gnu.org/licenses/>.

if test "$VERBOSE" = yes; then
  set -x
fi

. test-lib.sh

# -------------------------------------------------------
# C language
# -------------------------------------------------------

echo "void print_text (void);" > x.h

echo "void print_text (void)
{
  puts (\"my text\");
}" > x.c

echo "#include \"stdio.h\"
#include \"x.h\"
a flag \"Print command in one line\"
__CODE__(printf (\"Flag a was set.\n\");)
b flag \"Print command distributed among many lines\"
__CODE__(
printf 
(
\"Flag b was set.\n\"
)
;
)

#usage_begin
__CODE__(print_text ();)
#usage_end" > x.gp

echo "Flag a was set.
Flag b was set." > exp

echo "my text" > exp_help

$GENPARSE --language c x.gp >/dev/null                  || fail=1
gcc $CFLAGS -o parse_cl parse_cl.c $srcdir/simple.c x.c || fail=1
parse_cl -a -b > out                                    || fail=1
cmp out exp                                             || fail=1
parse_cl --help > out                                   || fail=1
cmp out exp_help                                        || fail=1

# -------------------------------------------------------
# C++ language
# -------------------------------------------------------

echo "#include <iostream>
void print_text (void)
{
  std::cout << \"my text\" << std::endl;
}" > x.cc

$GENPARSE --language cc x.gp >/dev/null                      || fail=1
g++ $CXXFLAGS -o parse_cl parse_cl.cc $srcdir/simple.cc x.cc || fail=1
parse_cl -a -b > out                                         || fail=1
cmp out exp                                                  || fail=1
parse_cl --help > out                                        || fail=1
cmp out exp_help                                             || fail=1

# -------------------------------------------------------
# Java language
# -------------------------------------------------------

echo "#include \"x.h\"
a flag \"Print command in one line\"
__CODE__(System.out.println (\"Flag a was set.\");)
b flag \"Print command distributed among many lines\"
__CODE__(
System.out.println 
(
\"Flag b was set.\"
)
;
)

#usage_begin
__CODE__(System.out.println (\"my text\");)
#usage_end" > x.gp

echo "class my_class
{
  public void print_text ()
  {
    System.out.println (\"my text\");
  }
}" > x.h

$GENPARSE --language java --parsefunc parse_cl x.gp >/dev/null        || fail=1
rm -f classes/*                                                       || fail=1
mkdir -p classes/                                                     || fail=1
javac -classpath $CLASSPATH:classes -d classes parse_clInterface.java || fail=1
javac -classpath $CLASSPATH:classes -d classes parse_clEx.java        || fail=1
javac -classpath $CLASSPATH:classes -d classes parse_cl.java          || fail=1
javac -classpath $CLASSPATH:classes -d classes $srcdir/simple.java    || fail=1
java  -classpath $CLASSPATH:classes simple -a -b > out                || fail=1
cmp out exp                                                           || fail=1
java  -classpath $CLASSPATH:classes simple --help > out               || fail=1
cmp out exp_help                                                      || fail=1

rm -f x.c x.cc x.h exp_help

exit $fail