Changeset 187 for trunk


Ignore:
Timestamp:
2006-09-19T02:37:06+02:00 (8 years ago)
Author:
moo
Message:

handle one line struct {}, multiline comments, whitespaces when parsing header for structs

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/mkstructinfo.awk

    r169 r187  
    33BEGIN { 
    44    brace = 0; 
     5    incomment = 0; 
    56    buffer_len = 0; 
    67} 
     8 
     9# multiline comment handling 
     10{ 
     11    # removes one line comment 
     12    gsub(/\/\*(.+?)\*\//, " "); 
     13} 
     14/\*\// { 
     15    if (incomment) { 
     16        sub(/.*\*\//, ""); 
     17        incomment = 0; 
     18    } 
     19} 
     20incomment { 
     21    next; 
     22} 
     23/\/\*/ { 
     24    sub(/\/\*.*/, ""); 
     25    incomment = 1; 
     26    # fall through 
     27} 
     28 
     29# skip file/line mark here to be faster 
    730/^#/ { 
    831    next; 
    932} 
     33 
    1034/^}.*;/ { 
    1135    if (instruct) { 
     
    5478{ 
    5579    if (brace == 1 && instruct) { 
    56         gsub(/\/\*(.+?)\*\//, " "); # removes one line comment 
     80        gsub(/(^[\t ]+|[\t ]+$)/, ""); # trim whitespaces 
    5781        sub(/.*[{}]/, ""); 
    5882        gsub(/\[[^\]]+\]/, ""); # ignore [...] 
     
    6791        } 
    6892        else { 
     93            # process normal variables 
     94 
    6995            # ignore any ()s 
    7096            while (gsub(/(\([^)]*\))/, "")) { 
     
    83109                next; 
    84110            } 
     111            # print "=DEBUG=" $0 "=="; 
    85112            split($0, chunks, ";"); 
    86113            # [unsigned int a, b, c] 
     
    102129                } 
    103130                if (last_piece == "") { 
    104                     print "=====" chunks[i]; 
     131                    # print "=ERROR=" chunks[i] "=="; 
     132                    delete chunks[i]; 
     133                    continue; 
    105134                } 
    106135                # a 
     
    123152    next; 
    124153} 
    125 /^typedef struct .*\{/ { 
     154/^typedef struct .*\{[^}]*$/ { 
    126155    brace = 1; 
    127156    instruct = 1; 
Note: See TracChangeset for help on using the changeset viewer.