Discussion:
sed: letztes Wort einer Zeile
(zu alt für eine Antwort)
Patrick Piecha
2004-05-07 11:19:35 UTC
Permalink
Wie kann ich mit sed nur das letzte Wort einer Zeile ausgeben
lassen?
sed -e 's/.*[ \t]//'
Das tut bei mir irgendwie nicht, damit wird anscheinend _alles_
geloescht, ich bekomme nur Leerzeilen.
Wenn du besondere Tests willst (leere Zeilen nicht ausgeben
usw.) dann wird es komplizierter.
Nein, ich will einfach alles vor dem letzten Leerzeichen
wegschneiden. Mein Tool der Wahl waere ja cut, aber das kann
nur vorwaerts zaehlen und kennt keine "negativen" Spalten.
Achtung: das \t ist symbolisch gemeint, ist nicht
standardkonform und funktioniert auch nur mit neuen
GNU-sed-Varianten.
Das ist ein Minuspunkt, aber es kommen nur Leerzeichen vor.

Also es geht darum, aus C-Prototypen den Funktionsnamen zu
extrahieren.

Aus

static char* foo ( int bar ) ...

soll einfach nur "foo" werden, dazu schneide ich bereits mit cut
vor der oeffnenden Klammer.
PS: die richtige Gruppe zu dieser Frage ist de.comp.os.unix.shell
Oh. Stimmt.


XPost & F'Up


Gruss, Patrick
--
I lost.
Helmut Hullen
2004-05-07 12:00:00 UTC
Permalink
Hallo, Patrick,
Post by Patrick Piecha
Wie kann ich mit sed nur das letzte Wort einer Zeile ausgeben
lassen?
sed -e 's/.*[ \t]//'
Das tut bei mir irgendwie nicht, damit wird anscheinend _alles_
geloescht, ich bekomme nur Leerzeilen.
Da würde ich (erst mal ohne "sed") etwa so vorgehen

rev $Zeile | cut -d" " -f1 | rev

Mag auch eleganter gehen, aber diese Lösung halte ich für
überschaubar.

Viele Grüße!
Helmut
Patrick Piecha
2004-05-07 13:52:00 UTC
Permalink
Post by Helmut Hullen
Hallo, Patrick,
Wie kann ich mit sed nur das letzte Wort einer Zeile ausgeben
lassen?
Da würde ich (erst mal ohne "sed") etwa so vorgehen
rev $Zeile | cut -d" " -f1 | rev
[***@nessie]~/ rev
bash: rev: command not found
[***@nessie]~/ uname -a
SunOS nessie 5.7 Generic_106541-12 sun4u sparc
[***@nessie]~/ _


Gruss, Patrick
--
I lost.
Ralph Angenendt
2004-05-07 19:01:41 UTC
Permalink
Post by Patrick Piecha
Post by Helmut Hullen
Wie kann ich mit sed nur das letzte Wort einer Zeile ausgeben
lassen?
Da würde ich (erst mal ohne "sed") etwa so vorgehen
rev $Zeile | cut -d" " -f1 | rev
bash: rev: command not found
SunOS nessie 5.7 Generic_106541-12 sun4u sparc
Hmmm. Stimmt, bei Solaris scheint das nicht vorhanden zu sein. Vergiß
also meinen Tipp in meinem anderen Posting.

Ralph
--
Suchmaschine - Standard - Rückgrat - Stegreif - Toleranz - Platitüde
hören - Paket - asozial - Terabyte - umbrochen - entgelten - intellektuell
delegieren - hältst - spülen - übertakten - lies nach
projizieren - nachweislich - voraus - eklig
Christian Schneider
2004-05-07 19:16:01 UTC
Permalink
Post by Ralph Angenendt
Post by Patrick Piecha
Post by Helmut Hullen
Wie kann ich mit sed nur das letzte Wort einer Zeile ausgeben
lassen?
Da würde ich (erst mal ohne "sed") etwa so vorgehen
rev $Zeile | cut -d" " -f1 | rev
bash: rev: command not found
SunOS nessie 5.7 Generic_106541-12 sun4u sparc
Hmmm. Stimmt, bei Solaris scheint das nicht vorhanden zu sein. Vergiß
also meinen Tipp in meinem anderen Posting.
alias rev="sed '/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//'"

*scnr*
--
Side Front Side back *=* Christian Schneider *=* (___)
(__) (__) (__) (__) *=* Email: ***@gmx.net *=* (O O)/
( oo (oo) oo ) ( ) *=* GnuPG-Key-ID: 47E322CE *=* ^ _/\ /\_ ^
/\_| /\/\ |_/\ / \ *=* <http://www.keyserver.net/> *=* \\/ O \//
Dietrich Schaffer
2004-05-07 14:56:20 UTC
Permalink
Post by Helmut Hullen
Hallo, Patrick,
Post by Patrick Piecha
Wie kann ich mit sed nur das letzte Wort einer Zeile ausgeben
lassen?
sed -e 's/.*[ \t]//'
Das tut bei mir irgendwie nicht, damit wird anscheinend _alles_
geloescht, ich bekomme nur Leerzeilen.
Da würde ich (erst mal ohne "sed") etwa so vorgehen
rev $Zeile | cut -d" " -f1 | rev
Mag auch eleganter gehen, aber diese Lösung halte ich für
überschaubar.
Sollte auch so gehen:

sed 's/.*\<//g'
Post by Helmut Hullen
Viele Grüße!
Helmut
Servus,
Dietrich
Patrick Piecha
2004-05-07 15:23:55 UTC
Permalink
Post by Dietrich Schaffer
sed 's/.*\<//g'
Das sieht mir brauchbar aus, danke.


Gruss, Patrick
--
I lost.
Ralph Angenendt
2004-05-07 18:58:23 UTC
Permalink
Post by Patrick Piecha
Wenn du besondere Tests willst (leere Zeilen nicht ausgeben
usw.) dann wird es komplizierter.
Nein, ich will einfach alles vor dem letzten Leerzeichen
wegschneiden. Mein Tool der Wahl waere ja cut, aber das kann
nur vorwaerts zaehlen und kennt keine "negativen" Spalten.
echo "please cut here" | rev | cut -f1 -d" " | rev

Wenn du unbedingt mit cut arbeiten möchtest :)

Ralph
--
Suchmaschine - Standard - Rückgrat - Stegreif - Toleranz - Platitüde
hören - Paket - asozial - Terabyte - umbrochen - entgelten - intellektuell
delegieren - hältst - spülen - übertakten - lies nach
projizieren - nachweislich - voraus - eklig
Peter J. Holzer
2004-05-08 17:02:57 UTC
Permalink
Post by Patrick Piecha
Wie kann ich mit sed nur das letzte Wort einer Zeile ausgeben
lassen?
sed -e 's/.*[ \t]//'
Das tut bei mir irgendwie nicht, damit wird anscheinend _alles_
geloescht, ich bekomme nur Leerzeilen.
Dann hast Du noch Leerzeichen nach dem letzten Wort.
Post by Patrick Piecha
Also es geht darum, aus C-Prototypen den Funktionsnamen zu
extrahieren.
Aus
static char* foo ( int bar ) ...
soll einfach nur "foo" werden, dazu schneide ich bereits mit cut
vor der oeffnenden Klammer.
D.h., es bleibt "static char* foo " übrig? Da ist das Leerzeichen schon.

Wie wär's, wenn Du das cut weglässt, und gleich mit

sed -e 's/.*[^A-Za-z0-9_]\([A-Za-z0-9_][A-Za-z0-9_]*\) *(.*)/\1/'

das letzte Wort vor den Klammern raussuchst?

Das funktioniert dann auch bei

static char *foo(bar)

Eine Schreibweise, die ich bei C bevorzugen würde (ich weiß, die
C++-Leute sehen das anders).

hp
--
_ | Peter J. Holzer | I think we need two definitions:
|_|_) | Sysadmin WSR | 1) The problem the *users* want us to solve
| | | ***@hjp.at | 2) The problem our solution addresses.
__/ | http://www.hjp.at/ | -- Phillip Hallam-Baker on spam
Alexander Bartolich
2004-05-08 19:30:16 UTC
Permalink
Post by Peter J. Holzer
Post by Patrick Piecha
Also es geht darum, aus C-Prototypen den Funktionsnamen zu
extrahieren.
[...]
static char* foo ( int bar ) ...
[...]
Das funktioniert dann auch bei
static char *foo(bar)
Eine Schreibweise, die ich bei C bevorzugen würde (ich weiß, die
C++-Leute sehen das anders).
Auch die Anhänger von C89 und C99 sehen das anders.
Deine Schreibweise im Stil von K&R ergibt als Prototyp wenig Sinn.
Interessant ist allerdings, dass gcc der Unfug nur eine Warnung
entlockt.

$ nl -ba a.c
1 char *foo(bar);
2 int main() { foo(27); return 0; }

$ gcc -c -Wall -ansi -pedantic a.c
a.c:1: warning: parameter names (without types) in function declaration

$ gcc -c -Wall -std=c99 -pedantic a.c
a.c:1: warning: parameter names (without types) in function declaration

C++ zeigt hier ein sinnvolleres Verhalten.

$ g++ -c -Wall -pedantic a.c
a.c:1: `bar' was not declared in this scope
a.c: In function `int main()':
a.c:2: `foo' cannot be used as a function
--
Für Google, Tux und GPL!
Peter J. Holzer
2004-05-09 13:00:37 UTC
Permalink
Post by Alexander Bartolich
Post by Peter J. Holzer
Post by Patrick Piecha
Also es geht darum, aus C-Prototypen den Funktionsnamen zu
extrahieren.
[...]
static char* foo ( int bar ) ...
[...]
Das funktioniert dann auch bei
static char *foo(bar)
Eine Schreibweise, die ich bei C bevorzugen würde (ich weiß, die
C++-Leute sehen das anders).
Auch die Anhänger von C89 und C99 sehen das anders.
Sorry, sollte natürlich
static char *foo(int bar)
heißen. Was mich gestört hat waren die Spaces rund um "foo". (Der Inhalt
der Klammern ist für die Aufgabenstellung ohnehin irrelevant)
Post by Alexander Bartolich
Deine Schreibweise im Stil von K&R ergibt als Prototyp wenig Sinn.
Interessant ist allerdings, dass gcc der Unfug nur eine Warnung
entlockt.
$ nl -ba a.c
1 char *foo(bar);
2 int main() { foo(27); return 0; }
$ gcc -c -Wall -ansi -pedantic a.c
a.c:1: warning: parameter names (without types) in function declaration
Das ist in der Tat interessant, denn soweit ich der in ANSI X3.159-1999
abgedruckten Grammatik entnehmen kann, ist das schlicht und ergreifend
ein Syntaxfehler.
Post by Alexander Bartolich
C++ zeigt hier ein sinnvolleres Verhalten.
Verwechselst Du da nicht Sprache und Compiler? Das sollte wohl heißen
"g++ zeigt hier ein sinnvolleres Verhalten".

hp
--
_ | Peter J. Holzer | I think we need two definitions:
|_|_) | Sysadmin WSR | 1) The problem the *users* want us to solve
| | | ***@hjp.at | 2) The problem our solution addresses.
__/ | http://www.hjp.at/ | -- Phillip Hallam-Baker on spam
Andreas Hünnebeck
2004-05-09 10:36:42 UTC
Permalink
<veröffentlicht & per Mail versendet>
Post by Peter J. Holzer
Post by Patrick Piecha
Also es geht darum, aus C-Prototypen den Funktionsnamen zu
extrahieren.
Aus
static char* foo ( int bar ) ...
soll einfach nur "foo" werden, dazu schneide ich bereits mit cut
vor der oeffnenden Klammer.
D.h., es bleibt "static char* foo " übrig? Da ist das Leerzeichen schon.
Wie wär's, wenn Du das cut weglässt, und gleich mit
sed -e 's/.*[^A-Za-z0-9_]\([A-Za-z0-9_][A-Za-z0-9_]*\) *(.*)/\1/'
das letzte Wort vor den Klammern raussuchst?
Das funktioniert dann auch bei
static char *foo(bar)
Eine Schreibweise, die ich bei C bevorzugen würde (ich weiß, die
C++-Leute sehen das anders).
Und keine Lösung (auch nicht meine mit awk) funktioniert,
wenn sowas dasteht:

stat char* foo
(
int bar, /* bar parameter */
char xyz /* zweiter parameter */
)

Patrick wird, um alle Fälle abdecken zu können, nicht umhin
kommen, einen echten C-Parser zu bemühen. cproto z.B.
enthält einen. Vielleicht sollte er mal sagen, was sein
Skript machen soll. Ich könnte mir denken, das es dafür
schon eine fertige Lösung gibt.

Tschau
Andreas
--
Andreas Hünnebeck | email: ***@despammed.com
----- privat ---- | www : http://www.huennebeck-online.de
PGP-Key: http://www.huennebeck-online.de/public_keys/pgp_andreas.asc
GPG-Key: http://www.huennebeck-online.de/public_keys/andreas.asc
Heike C. Zimmerer
2004-05-09 13:27:02 UTC
Permalink
Post by Patrick Piecha
Also es geht darum, aus C-Prototypen den Funktionsnamen zu
extrahieren.
Aus
static char* foo ( int bar ) ...
soll einfach nur "foo" werden, dazu schneide ich bereits mit cut
vor der oeffnenden Klammer.
Wie wäre es mit ctags oder etags? Das übernimmt das Parsen von C, und
der Output dürfte leicht weiter zu verarbeiten sein.

Gruß,

Heike
Alexander Bartolich
2004-05-09 20:07:25 UTC
Permalink
Post by Heike C. Zimmerer
Wie wäre es mit ctags oder etags? Das übernimmt das Parsen von C,
und der Output dürfte leicht weiter zu verarbeiten sein.
http://www.stack.nl/~dimitri/doxygen/

Kann auch die rohen Deklarationsdaten als XML ausgeben.
--
Für Google, Tux und GPL!
Patrick Piecha
2004-05-10 07:57:10 UTC
Permalink
Post by Andreas Hünnebeck
Patrick wird, um alle Fälle abdecken zu können, nicht umhin
kommen, einen echten C-Parser zu bemühen.
Noe, das ist hier Overkill.
Post by Andreas Hünnebeck
Vielleicht sollte er mal sagen, was sein Skript machen soll.
Ich könnte mir denken, das es dafür schon eine fertige Lösung
gibt.
Es existiert ein Script, das einen grossen Haufen C-Code
durchgrept und fuer jede Funktion den entsprechenden Prototypen
erzeugt und daraus ein vollstaendiges Headerfile baut.

Nun will ich ein .def-File fuer <duck> Visual C++ bauen, dazu
brauche ich den Funktionsnamen fuer die zu exportierenden
Symbole.

Mittlerweile laeuft das auch prima (mit der Angabe von Dietrich
Schaffer).


Gruss, Patrick
--
I lost.
Andreas Hünnebeck
2004-05-12 20:47:15 UTC
Permalink
Post by Patrick Piecha
Es existiert ein Script, das einen grossen Haufen C-Code
durchgrept und fuer jede Funktion den entsprechenden Prototypen
erzeugt und daraus ein vollstaendiges Headerfile baut.
Also selbergebaut und nicht cproto?
Post by Patrick Piecha
Nun will ich ein .def-File fuer <duck> Visual C++ bauen, dazu
brauche ich den Funktionsnamen fuer die zu exportierenden
Symbole.
Was steht denn in so einem .def-File drin?
Post by Patrick Piecha
Mittlerweile laeuft das auch prima (mit der Angabe von Dietrich
Schaffer).
Ja dann ...

Tschau
Andreas
--
Andreas Hünnebeck | email: ***@despammed.com
----- privat ---- | www : http://www.huennebeck-online.de
PGP-Key: http://www.huennebeck-online.de/public_keys/pgp_andreas.asc
GPG-Key: http://www.huennebeck-online.de/public_keys/andreas.asc
Patrick Piecha
2004-05-13 14:58:36 UTC
Permalink
Post by Andreas Hünnebeck
Post by Patrick Piecha
Es existiert ein Script, das einen grossen Haufen C-Code
durchgrept und fuer jede Funktion den entsprechenden Prototypen
erzeugt und daraus ein vollstaendiges Headerfile baut.
Also selbergebaut und nicht cproto?
Ja.

So mal zum Vergleich:

$ l H.sh
-rwx------ 1 piecha audio 1493 May 8 01:41 H.sh
$ l cproto*gz
-rw-r----- 1 piecha audio 124251 May 13 16:40 cproto-4.6.tar.gz
$ cd cproto-4.6 && ./configure && make
gcc -g -O2 -I. -DHAVE_CONFIG_H -I. -DHAVE_CONFIG_H -c cproto.c
gcc -g -O2 -I. -DHAVE_CONFIG_H -I. -DHAVE_CONFIG_H -c lintlibs.c
gcc -g -O2 -I. -DHAVE_CONFIG_H -I. -DHAVE_CONFIG_H -c semantic.c
gcc -g -O2 -I. -DHAVE_CONFIG_H -I. -DHAVE_CONFIG_H -c strkey.c
gcc -g -O2 -I. -DHAVE_CONFIG_H -I. -DHAVE_CONFIG_H -c strstr.c
gcc -g -O2 -I. -DHAVE_CONFIG_H -I. -DHAVE_CONFIG_H -c symbol.c
flex ./lex.l
bison -y ./grammar.y
gcc -g -O2 -I. -DHAVE_CONFIG_H -I. -DHAVE_CONFIG_H -c y.tab.c
./grammar.y:171: error: conflicting types for `YYSTYPE'
cproto.h:119: error: previous declaration of `YYSTYPE'
./grammar.y: In function `yyparse':
./grammar.y:207: error: request for member `decl_spec' in something not a structure or union
./grammar.y:211: error: request for member `decl_spec' in something not a structure or union
./grammar.y:217: error: request for member `decl_spec' in something not a structure or union
./grammar.y:217: error: request for member `decl_list' in something not a structure or union
./grammar.y:219: error: request for member `decl_spec' in something not a structure or union
./grammar.y:219: error: request for member `decl_list' in something not a structure or union
./grammar.y:223: error: request for member `decl_list' in something not a structure or union
./grammar.y:225: error: request for member `decl_spec' in something not a structure or union
./grammar.y:230: error: request for member `decl_spec' in something not a structure or union
./grammar.y:231: error: request for member `decl_spec' in something not a structure or union
./grammar.y:259: error: request for member `declarator' in something not a structure or union
./grammar.y:259: error: request for member `declarator' in something not a structure or union
./grammar.y:261: error: request for member `declarator' in something not a structure or union
./grammar.y:262: error: request for member `declarator' in something not a structure or union
./grammar.y:268: error: request for member `declarator' in something not a structure or union
./grammar.y:268: error: request for member `declarator' in something not a structure or union
./grammar.y:270: error: request for member `declarator' in something not a structure or union
./grammar.y:271: error: request for member `declarator' in something not a structure or union
./grammar.y:278: error: request for member `decl_spec' in something not a structure or union
./grammar.y:279: error: request for member `declarator' in something not a structure or union
./grammar.y:283: error: request for member `declarator' in something not a structure or union
./grammar.y:296: error: request for member `declarator' in something not a structure or union
./grammar.y:297: error: request for member `declarator' in something not a structure or union
./grammar.y:303: error: request for member `decl_spec' in something not a structure or union
./grammar.y:303: error: request for member `declarator' in something not a structure or union
./grammar.y:304: error: request for member `decl_spec' in something not a structure or union
./grammar.y:304: error: request for member `declarator' in something not a structure or union
./grammar.y:308: error: request for member `decl_spec' in something not a structure or union
./grammar.y:309: error: request for member `declarator' in something not a structure or union
./grammar.y:314: error: request for member `declarator' in something not a structure or union
./grammar.y:318: error: request for member `declarator' in something not a structure or union
./grammar.y:328: error: request for member `declarator' in something not a structure or union
./grammar.y:330: error: request for member `declarator' in something not a structure or union
./grammar.y:331: error: request for member `declarator' in something not a structure or union
./grammar.y:336: error: request for member `declarator' in something not a structure or union
./grammar.y:355: error: request for member `decl_spec' in something not a structure or union
./grammar.y:355: error: request for member `decl_spec' in something not a structure or union
./grammar.y:355: error: request for member `decl_spec' in something not a structure or union
./grammar.y:356: error: request for member `decl_spec' in something not a structure or union
./grammar.y:357: error: request for member `decl_spec' in something not a structure or union
./grammar.y:370: error: request for member `decl_spec' in something not a structure or union
./grammar.y:370: error: request for member `text' in something not a structure or union
./grammar.y:370: error: request for member `text' in something not a structure or union
./grammar.y:374: error: request for member `decl_spec' in something not a structure or union
./grammar.y:374: error: request for member `text' in something not a structure or union
./grammar.y:374: error: request for member `text' in something not a structure or union
./grammar.y:378: error: request for member `decl_spec' in something not a structure or union
./grammar.y:378: error: request for member `text' in something not a structure or union
./grammar.y:378: error: request for member `text' in something not a structure or union
./grammar.y:382: error: request for member `decl_spec' in something not a structure or union
./grammar.y:382: error: request for member `text' in something not a structure or union
./grammar.y:382: error: request for member `text' in something not a structure or union
./grammar.y:386: error: request for member `decl_spec' in something not a structure or union
./grammar.y:386: error: request for member `text' in something not a structure or union
./grammar.y:386: error: request for member `text' in something not a structure or union
./grammar.y:393: error: request for member `decl_spec' in something not a structure or union
./grammar.y:393: error: request for member `text' in something not a structure or union
./grammar.y:393: error: request for member `text' in something not a structure or union
./grammar.y:397: error: request for member `decl_spec' in something not a structure or union
./grammar.y:397: error: request for member `text' in something not a structure or union
./grammar.y:397: error: request for member `text' in something not a structure or union
./grammar.y:401: error: request for member `decl_spec' in something not a structure or union
./grammar.y:401: error: request for member `text' in something not a structure or union
./grammar.y:401: error: request for member `text' in something not a structure or union
./grammar.y:405: error: request for member `decl_spec' in something not a structure or union
./grammar.y:405: error: request for member `text' in something not a structure or union
./grammar.y:405: error: request for member `text' in something not a structure or union
./grammar.y:409: error: request for member `decl_spec' in something not a structure or union
./grammar.y:409: error: request for member `text' in something not a structure or union
./grammar.y:409: error: request for member `text' in something not a structure or union
./grammar.y:413: error: request for member `decl_spec' in something not a structure or union
./grammar.y:413: error: request for member `text' in something not a structure or union
./grammar.y:413: error: request for member `text' in something not a structure or union
./grammar.y:417: error: request for member `decl_spec' in something not a structure or union
./grammar.y:417: error: request for member `text' in something not a structure or union
./grammar.y:417: error: request for member `text' in something not a structure or union
./grammar.y:421: error: request for member `decl_spec' in something not a structure or union
./grammar.y:421: error: request for member `text' in something not a structure or union
./grammar.y:421: error: request for member `text' in something not a structure or union
./grammar.y:425: error: request for member `decl_spec' in something not a structure or union
./grammar.y:425: error: request for member `text' in something not a structure or union
./grammar.y:425: error: request for member `text' in something not a structure or union
./grammar.y:430: error: request for member `text' in something not a structure or union
./grammar.y:432: error: request for member `decl_spec' in something not a structure or union
./grammar.y:432: error: request for member `text' in something not a structure or union
./grammar.y:432: error: request for member `text' in something not a structure or union
./grammar.y:441: error: request for member `decl_spec' in something not a structure or union
./grammar.y:441: error: request for member `text' in something not a structure or union
./grammar.y:441: error: request for member `text' in something not a structure or union
./grammar.y:449: error: request for member `text' in something not a structure or union
./grammar.y:451: error: request for member `decl_spec' in something not a structure or union
./grammar.y:451: error: request for member `text' in something not a structure or union
./grammar.y:451: error: request for member `text' in something not a structure or union
./grammar.y:460: error: request for member `text' in something not a structure or union
./grammar.y:460: error: request for member `text' in something not a structure or union
./grammar.y:461: error: request for member `decl_spec' in something not a structure or union
./grammar.y:461: error: request for member `text' in something not a structure or union
./grammar.y:467: error: request for member `text' in something not a structure or union
./grammar.y:468: error: request for member `decl_spec' in something not a structure or union
./grammar.y:468: error: request for member `text' in something not a structure or union
./grammar.y:472: error: request for member `text' in something not a structure or union
./grammar.y:472: error: request for member `text' in something not a structure or union
./grammar.y:473: error: request for member `decl_spec' in something not a structure or union
./grammar.y:473: error: request for member `text' in something not a structure or union
./grammar.y:480: error: request for member `text' in something not a structure or union
./grammar.y:484: error: request for member `text' in something not a structure or union
./grammar.y:491: error: request for member `decl_list' in something not a structure or union
./grammar.y:491: error: request for member `declarator' in something not a structure or union
./grammar.y:495: error: request for member `decl_list' in something not a structure or union
./grammar.y:495: error: request for member `decl_list' in something not a structure or union
./grammar.y:495: error: request for member `declarator' in something not a structure or union
./grammar.y:502: error: request for member `declarator' in something not a structure or union
./grammar.y:504: error: request for member `declarator' in something not a structure or union
./grammar.y:507: error: request for member `declarator' in something not a structure or union
./grammar.y:511: error: request for member `declarator' in something not a structure or union
./grammar.y:513: error: request for member `declarator' in something not a structure or union
./grammar.y:525: error: request for member `text' in something not a structure or union
./grammar.y:526: error: request for member `decl_spec' in something not a structure or union
./grammar.y:526: error: request for member `text' in something not a structure or union
./grammar.y:532: error: request for member `text' in something not a structure or union
./grammar.y:533: error: request for member `decl_spec' in something not a structure or union
./grammar.y:533: error: request for member `text' in something not a structure or union
./grammar.y:537: error: request for member `text' in something not a structure or union
./grammar.y:538: error: request for member `decl_spec' in something not a structure or union
./grammar.y:538: error: request for member `text' in something not a structure or union
./grammar.y:546: error: request for member `text' in something not a structure or union
./grammar.y:546: error: request for member `text' in something not a structure or union
./grammar.y:558: error: request for member `declarator' in something not a structure or union
./grammar.y:558: error: request for member `declarator' in something not a structure or union
./grammar.y:559: error: request for member `text' in something not a structure or union
./grammar.y:559: error: request for member `declarator' in something not a structure or union
./grammar.y:560: error: request for member `declarator' in something not a structure or union
./grammar.y:561: error: request for member `declarator' in something not a structure or union
./grammar.y:562: error: request for member `declarator' in something not a structure or union
./grammar.y:562: error: request for member `text' in something not a structure or union
./grammar.y:563: error: request for member `declarator' in something not a structure or union
./grammar.y:571: error: request for member `declarator' in something not a structure or union
./grammar.y:571: error: request for member `text' in something not a structure or union
./grammar.y:571: error: request for member `text' in something not a structure or union
./grammar.y:571: error: request for member `text' in something not a structure or union
./grammar.y:575: error: request for member `declarator' in something not a structure or union
./grammar.y:575: error: request for member `declarator' in something not a structure or union
./grammar.y:576: error: request for member `declarator' in something not a structure or union
./grammar.y:577: error: request for member `declarator' in something not a structure or union
./grammar.y:578: error: request for member `declarator' in something not a structure or union
./grammar.y:579: error: request for member `declarator' in something not a structure or union
./grammar.y:579: error: request for member `text' in something not a structure or union
./grammar.y:583: error: request for member `declarator' in something not a structure or union
./grammar.y:583: error: request for member `declarator' in something not a structure or union
./grammar.y:584: error: request for member `declarator' in something not a structure or union
./grammar.y:584: error: request for member `text' in something not a structure or union
./grammar.y:585: error: request for member `declarator' in something not a structure or union
./grammar.y:586: error: request for member `declarator' in something not a structure or union
./grammar.y:590: error: request for member `declarator' in something not a structure or union
./grammar.y:590: error: request for member `declarator' in something not a structure or union
./grammar.y:590: error: request for member `declarator' in something not a structure or union
./grammar.y:591: error: request for member `declarator' in something not a structure or union
./grammar.y:591: error: request for member `param_list' in something not a structure or union
./grammar.y:592: error: request for member `declarator' in something not a structure or union
./grammar.y:592: error: request for member `declarator' in something not a structure or union
./grammar.y:593: error: request for member `declarator' in something not a structure or union
./grammar.y:593: error: request for member `declarator' in something not a structure or union
./grammar.y:593: error: request for member `declarator' in something not a structure or union
./grammar.y:593: error: request for member `declarator' in something not a structure or union
./grammar.y:594: error: request for member `declarator' in something not a structure or union
./grammar.y:598: error: request for member `declarator' in something not a structure or union
./grammar.y:598: error: request for member `declarator' in something not a structure or union
./grammar.y:598: error: request for member `declarator' in something not a structure or union
./grammar.y:599: error: request for member `declarator' in something not a structure or union
./grammar.y:599: error: request for member `param_list' in something not a structure or union
./grammar.y:600: error: request for member `declarator' in something not a structure or union
./grammar.y:600: error: request for member `declarator' in something not a structure or union
./grammar.y:601: error: request for member `declarator' in something not a structure or union
./grammar.y:601: error: request for member `declarator' in something not a structure or union
./grammar.y:601: error: request for member `declarator' in something not a structure or union
./grammar.y:601: error: request for member `declarator' in something not a structure or union
./grammar.y:602: error: request for member `declarator' in something not a structure or union
./grammar.y:609: error: request for member `text' in something not a structure or union
./grammar.y:609: error: request for member `text' in something not a structure or union
./grammar.y:610: error: request for member `text' in something not a structure or union
./grammar.y:610: error: request for member `text' in something not a structure or union
./grammar.y:614: error: request for member `text' in something not a structure or union
./grammar.y:614: error: request for member `text' in something not a structure or union
./grammar.y:614: error: request for member `text' in something not a structure or union
./grammar.y:615: error: request for member `text' in something not a structure or union
./grammar.y:615: error: request for member `text' in something not a structure or union
./grammar.y:622: error: request for member `text' in something not a structure or union
./grammar.y:623: error: request for member `text' in something not a structure or union
./grammar.y:631: error: request for member `text' in something not a structure or union
./grammar.y:631: error: request for member `decl_spec' in something not a structure or union
./grammar.y:632: error: request for member `text' in something not a structure or union
./grammar.y:632: error: request for member `decl_spec' in something not a structure or union
./grammar.y:633: error: request for member `decl_spec' in something not a structure or union
./grammar.y:637: error: request for member `text' in something not a structure or union
./grammar.y:637: error: request for member `text' in something not a structure or union
./grammar.y:637: error: request for member `decl_spec' in something not a structure or union
./grammar.y:638: error: request for member `text' in something not a structure or union
./grammar.y:638: error: request for member `text' in something not a structure or union
./grammar.y:639: error: request for member `decl_spec' in something not a structure or union
./grammar.y:647: error: request for member `param_list' in something not a structure or union
./grammar.y:647: error: request for member `param_list' in something not a structure or union
./grammar.y:654: error: request for member `param_list' in something not a structure or union
./grammar.y:654: error: request for member `parameter' in something not a structure or union
./grammar.y:658: error: request for member `param_list' in something not a structure or union
./grammar.y:658: error: request for member `param_list' in something not a structure or union
./grammar.y:658: error: request for member `parameter' in something not a structure or union
./grammar.y:665: error: request for member `decl_spec' in something not a structure or union
./grammar.y:666: error: request for member `parameter' in something not a structure or union
./grammar.y:666: error: request for member `decl_spec' in something not a structure or union
./grammar.y:666: error: request for member `declarator' in something not a structure or union
./grammar.y:670: error: request for member `decl_spec' in something not a structure or union
./grammar.y:671: error: request for member `parameter' in something not a structure or union
./grammar.y:671: error: request for member `decl_spec' in something not a structure or union
./grammar.y:671: error: request for member `declarator' in something not a structure or union
./grammar.y:675: error: request for member `decl_spec' in something not a structure or union
./grammar.y:676: error: request for member `parameter' in something not a structure or union
./grammar.y:676: error: request for member `decl_spec' in something not a structure or union
./grammar.y:683: error: request for member `param_list' in something not a structure or union
./grammar.y:691: error: request for member `param_list' in something not a structure or union
./grammar.y:692: error: request for member `param_list' in something not a structure or union
./grammar.y:692: error: request for member `param_list' in something not a structure or union
./grammar.y:692: error: request for member `text' in something not a structure or union
./grammar.y:696: error: request for member `param_list' in something not a structure or union
./grammar.y:696: error: request for member `param_list' in something not a structure or union
./grammar.y:696: error: request for member `text' in something not a structure or union
./grammar.y:703: error: request for member `text' in something not a structure or union
./grammar.y:703: error: request for member `text' in something not a structure or union
./grammar.y:709: error: request for member `text' in something not a structure or union
./grammar.y:709: error: request for member `text' in something not a structure or union
./grammar.y:712: error: request for member `text' in something not a structure or union
./grammar.y:712: error: request for member `text' in something not a structure or union
./grammar.y:713: error: request for member `text' in something not a structure or union
./grammar.y:713: error: request for member `text' in something not a structure or union
./grammar.y:720: error: request for member `declarator' in something not a structure or union
./grammar.y:720: error: request for member `text' in something not a structure or union
./grammar.y:720: error: request for member `text' in something not a structure or union
./grammar.y:724: error: request for member `declarator' in something not a structure or union
./grammar.y:724: error: request for member `declarator' in something not a structure or union
./grammar.y:725: error: request for member `text' in something not a structure or union
./grammar.y:725: error: request for member `declarator' in something not a structure or union
./grammar.y:726: error: request for member `declarator' in something not a structure or union
./grammar.y:727: error: request for member `declarator' in something not a structure or union
./grammar.y:728: error: request for member `declarator' in something not a structure or union
./grammar.y:728: error: request for member `text' in something not a structure or union
./grammar.y:736: error: request for member `declarator' in something not a structure or union
./grammar.y:736: error: request for member `declarator' in something not a structure or union
./grammar.y:737: error: request for member `declarator' in something not a structure or union
./grammar.y:738: error: request for member `declarator' in something not a structure or union
./grammar.y:739: error: request for member `declarator' in something not a structure or union
./grammar.y:740: error: request for member `declarator' in something not a structure or union
./grammar.y:740: error: request for member `text' in something not a structure or union
./grammar.y:744: error: request for member `declarator' in something not a structure or union
./grammar.y:744: error: request for member `declarator' in something not a structure or union
./grammar.y:745: error: request for member `declarator' in something not a structure or union
./grammar.y:745: error: request for member `text' in something not a structure or union
./grammar.y:746: error: request for member `declarator' in something not a structure or union
./grammar.y:747: error: request for member `declarator' in something not a structure or union
./grammar.y:751: error: request for member `declarator' in something not a structure or union
./grammar.y:751: error: request for member `text' in something not a structure or union
./grammar.y:751: error: request for member `text' in something not a structure or union
./grammar.y:755: error: request for member `declarator' in something not a structure or union
./grammar.y:755: error: request for member `declarator' in something not a structure or union
./grammar.y:756: error: request for member `declarator' in something not a structure or union
./grammar.y:756: error: request for member `param_list' in something not a structure or union
./grammar.y:757: error: request for member `declarator' in something not a structure or union
./grammar.y:757: error: request for member `declarator' in something not a structure or union
./grammar.y:758: error: request for member `declarator' in something not a structure or union
./grammar.y:758: error: request for member `declarator' in something not a structure or union
./grammar.y:758: error: request for member `declarator' in something not a structure or union
./grammar.y:758: error: request for member `declarator' in something not a structure or union
./grammar.y:759: error: request for member `declarator' in something not a structure or union
./grammar.y:763: error: request for member `declarator' in something not a structure or union
./grammar.y:763: error: request for member `declarator' in something not a structure or union
./grammar.y:764: error: request for member `declarator' in something not a structure or union
./grammar.y:764: error: request for member `declarator' in something not a structure or union
./grammar.y:765: error: request for member `declarator' in something not a structure or union
./grammar.y:765: error: request for member `declarator' in something not a structure or union
./grammar.y:765: error: request for member `declarator' in something not a structure or union
./grammar.y:765: error: request for member `declarator' in something not a structure or union
./grammar.y:766: error: request for member `declarator' in something not a structure or union
./grammar.y:772: error: request for member `text' in something not a structure or union
./grammar.y:773: error: request for member `declarator' in something not a structure or union
./grammar.y:773: error: request for member `text' in something not a structure or union
./grammar.y:774: error: request for member `declarator' in something not a structure or union
./grammar.y:774: error: request for member `param_list' in something not a structure or union
./grammar.y:775: error: request for member `declarator' in something not a structure or union
./grammar.y:776: error: request for member `declarator' in something not a structure or union
./grammar.y:776: error: request for member `declarator' in something not a structure or union
./grammar.y:777: error: request for member `declarator' in something not a structure or union
./grammar.y:783: error: request for member `text' in something not a structure or union
./grammar.y:784: error: request for member `declarator' in something not a structure or union
./grammar.y:784: error: request for member `text' in something not a structure or union
./grammar.y:785: error: request for member `declarator' in something not a structure or union
./grammar.y:786: error: request for member `declarator' in something not a structure or union
./grammar.y:786: error: request for member `declarator' in something not a structure or union
./grammar.y:787: error: request for member `declarator' in something not a structure or union
In file included from ./grammar.y:800:
./lex.l: In function `save_text_offset':
./lex.l:465: error: request for member `text' in something not a structure or union
./lex.l:470: error: request for member `text' in something not a structure or union
./lex.l:473: error: request for member `text' in something not a structure or union
*** Error code 1
make: Fatal error: Command failed for target `y.tab.o'
$ _

Ist ja gut gemeint, aber lasst mal lieber stecken euer cproto.
Post by Andreas Hünnebeck
Post by Patrick Piecha
Nun will ich ein .def-File fuer <duck> Visual C++ bauen, dazu
brauche ich den Funktionsnamen fuer die zu exportierenden
Symbole.
Was steht denn in so einem .def-File drin?
Im Prinzip die Namen der zu exportierenden Symbole. Man kann
sich natuerlich auch den gesamten Code mit cdecl und aehnlichem
Bledsinn zukippen, aber _ich_ will das nicht ...


Gruss, Patrick
--
I lost.
Patrick Piecha
2004-05-10 07:57:54 UTC
Permalink
Post by Peter J. Holzer
Post by Patrick Piecha
sed -e 's/.*[ \t]//'
Das tut bei mir irgendwie nicht, damit wird anscheinend _alles_
geloescht, ich bekomme nur Leerzeilen.
Dann hast Du noch Leerzeichen nach dem letzten Wort.
Das Stoert nicht allzu doll, ausserdem bekomme ich das dann nun
wirklich einfach weg.
Post by Peter J. Holzer
Post by Patrick Piecha
Also es geht darum, aus C-Prototypen den Funktionsnamen zu
extrahieren.
static char* foo ( int bar ) ...
D.h., es bleibt "static char* foo " übrig? Da ist das
Leerzeichen schon.
Wie wär's, wenn Du das cut weglässt, und gleich mit
sed -e 's/.*[^A-Za-z0-9_]\([A-Za-z0-9_][A-Za-z0-9_]*\) *(.*)/\1/'
das letzte Wort vor den Klammern raussuchst?
Hm, schaden kann's nicht ...
Post by Peter J. Holzer
Das funktioniert dann auch bei
static char *foo(bar)
Eine Schreibweise, die ich bei C bevorzugen würde (ich weiß,
die C++-Leute sehen das anders).
Die Deklarationen haben bei mir immer ein Leerzeichen vor dem
Namen:

static char* foo (bar)


Gruss, Patrick
--
I lost.
Andreas Hünnebeck
2004-05-09 10:28:20 UTC
Permalink
Post by Patrick Piecha
Nein, ich will einfach alles vor dem letzten Leerzeichen
wegschneiden. Mein Tool der Wahl waere ja cut, aber das kann
nur vorwaerts zaehlen und kennt keine "negativen" Spalten.
Nimm awk:
awk '{print $NF}'

Tschau
Andreas
--
Andreas Hünnebeck | email: ***@despammed.com
----- privat ---- | www : http://www.huennebeck-online.de
PGP-Key: http://www.huennebeck-online.de/public_keys/pgp_andreas.asc
GPG-Key: http://www.huennebeck-online.de/public_keys/andreas.asc
Loading...