If you change your data to:
typedef struct { float one; float two; int three; bool potato; } struct_name; typedef struct { float one; /* 1.1 */ float two; /* 2.2 */ int three; /* 3 */ bool potato; /* true */ } struct_name_with_comments;
You get the following (wrapped to compress):
$VAR1 = 'struct_name_with_comments'; $VAR2 = [ ['float', 'one', 0], ['/*', '1.1', undef], ['/*', '2.2', undef], ['/*', '3', undef], ['/*', 'true', undef] ]; $VAR3 = 'struct_name'; $VAR4 = [ ['float','one',0], ['float', 'two', 0], ['int', 'three', 3], ['bool', 'potato', 'false'] ];
There appear to be bugs :).
Given you are $line =~ s/\n/ /g; and $line =~ s/\s+/ /g; you could just $line =~ s/[\n\s]+/ /g;.
<>.The use of $/ is nice. Good to see someone remembering it's there.In reply to Re^3: C parsing questions
by GrandFather
in thread C parsing questions
by Nkuvu
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |