Changeset 169 for trunk/mkstructinfo.awk


Ignore:
Timestamp:
2006-09-16T03:09:22+02:00 (8 years ago)
Author:
moo
Message:

comments/loops improved in mkstructinfo while avoiding gawk assertion bug with LANG=C

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/mkstructinfo.awk

    r52 r169  
    44    brace = 0; 
    55    buffer_len = 0; 
     6} 
     7/^#/ { 
     8    next; 
    69} 
    710/^}.*;/ { 
     
    5154{ 
    5255    if (brace == 1 && instruct) { 
     56        gsub(/\/\*(.+?)\*\//, " "); # removes one line comment 
    5357        sub(/.*[{}]/, ""); 
    5458        gsub(/\[[^\]]+\]/, ""); # ignore [...] 
     
    6973                next; 
    7074            } 
     75            # unsigned int *a,  b; int c; 
    7176            gsub(/[*]/, " "); 
     77            # unsigned int a,  b; int c; 
    7278            gsub(/ +/, " "); 
     79            # unsigned int a, b; int c; 
    7380            gsub(/ *[,;]/, ";"); 
     81            # unsigned int a; b; int c; 
    7482            if (!match($0, /;/)) { 
    7583                next; 
    7684            } 
    7785            split($0, chunks, ";"); 
    78             # get var of "int *var, var;" etc 
    79             for (i in chunks) { 
     86            # [unsigned int a, b, c] 
     87 
     88            for (i = 1; i in chunks; i ++) { 
    8089                if (chunks[i] == "") { 
    8190                    delete chunks[i]; 
     
    8392                } 
    8493                split(chunks[i], pieces, " "); 
     94                # [unsigned, int, a] 
     95                # [b] 
     96                # [c] 
    8597 
    86                 for (j in pieces) { 
     98                last_piece = ""; 
     99                for (j = 1; j in pieces; j ++) { 
    87100                    last_piece = pieces[j]; 
    88                     delete pieces[i]; 
     101                    delete pieces[j]; 
    89102                } 
    90103                if (last_piece == "") { 
    91104                    print "=====" chunks[i]; 
    92105                } 
     106                # a 
     107                # b 
     108                # c 
     109 
    93110                buffer[buffer_len] = last_piece; 
    94111                buffer_len ++; 
    95                 delete chunks[i]; 
     112                delete chunks[i] 
    96113            } 
     114            last_piece = ""; 
    97115        } 
    98116        next; 
Note: See TracChangeset for help on using the changeset viewer.