Changeset 169 in svn for trunk/mkstructinfo.awk


Ignore:
Timestamp:
2006-09-16T01:09:22Z (9 years ago)
Author:
Xuefer
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.