File: check_syntax.sh

package info (click to toggle)
wxwidgets3.0 3.0.5.1%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 120,464 kB
  • sloc: cpp: 896,633; makefile: 52,303; ansic: 21,971; sh: 5,713; python: 2,940; xml: 1,534; perl: 264; javascript: 33
file content (33 lines) | stat: -rwxr-xr-x 1,170 bytes parent folder | download | duplicates (14)
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
#!/bin/bash

# check_syntax.sh - a small script to search for interface headers with
#                   missing semicolons (they give troubles to Doxygen).
# Author: Francesco Montorsi


rm -f missing_semicolons

# the preprocessor will remove comments and all #preprocessor #stuff;
# we then remove the empty lines
for iface in wx/*h; do

    echo "--- $iface ---" >>missing_semicolons

    gcc -E $iface | grep -v '#' | grep -v '^[[:space:]]*$' >temp

    # now remove the lines which ends with a comma or a semicolon; they're ok
    cat temp | grep -v '.*;$' | grep -v '.*,$' >temp2

    # now search for methods; we know they should always contain at least two () brackets!
    cat temp2 | grep '(' >>missing_semicolons

    # now remove the lines which shouldn't have final comma or semicolon:
#     cat temp2 | grep -v '^[[:space:]]*wx[A-Z]*[[:space:]]*$' >temp
#     cat temp | grep -v 'class' | grep -v 'enum' | grep -v 'template' | \
#                grep -v 'struct' | grep -v 'typedef' | \
#                grep -v 'public:' | grep -v 'protected:' | grep -v 'private:' | \
#                grep -v '{' | grep -v '}' >>missing_semicolons

done

rm temp temp2