bison: token

From: Göran Uddeborg (goeran_at_uddeborg.pp.se)
Date: 2001-11-12 21:52:41

Christian Rose writes:
> > #: src/lex.c:438
> > msgid "use \"...\" for multi-character literal tokens"
> > msgstr "använd \"...\" för flerteckens bokstavliga tecken"
> 
> Blir lite knepigt att även översätta "token" med "tecken" här. Bör
> kanske ändra översättningen av token generellt.

> > #: src/reader.c:1397
> > #, c-format
> > msgid "rule given for %s, which is a token"
> > msgstr "regel given för %s, som är en tecken"
> 
> En tecken? Hörrududu. :-)
> Se också kommentaren om "token" tidigare.

Jan D. writes:
> > : src/getargs.c:105
> > msgid ""
> > "Parser:\n"
> > "  -S, --skeleton=FILE        specify the skeleton to use\n"
> > "  -t, --debug                instrument the parser for debugging\n"
> > "      --locations            enable locations computation\n"
> > "  -p, --name-prefix=PREFIX   prepend PREFIX to the external symbols\n"
> > "  -l, --no-lines             don't generate `#line' directives\n"
> > "  -n, --no-parser            generate the tables only\n"
> > "  -k, --token-table          include a table of token names\n"
> > msgstr ""
> > "Tolk:\n"
> > "  -S, --skeleton=FIL         ange skelettfilen som skall användas\n"
> > "  -t, --debug                instrumentera tolken för felsökning\n"
> > "      --locations            aktivera lägesberäkning\n"
> > "  -p, --name-prefix=PREFIX   lägg till PREFIX före externa symboler\n"
> > "  -l, --no-lines             generera inte \"#line\"-direktiv\n"
> > "  -n, --no-parser            generera endast tabellerna\n"
> > "  -k, --token-table          inkludera en tabell över teckennamn\n"
> > 
> 
> 
> I detta fall är det inte heltäckande att översätta token med teckennamn. 
> Eftersom man själv gör den lexikaliska analysen (med flex/lex förslagsvis) kan
> ett "token" i princip vara vad som helst.  Ofta har man enskilda tecken som
> "token", men om man parsar C/C++/Java har man säkert "token" för if, while,
> switch, case och sådant.
> 
> Symbol kan vara en översättning, eller syntaxsymbol.

> > #: src/lex.c:438
> > msgid "use \"...\" for multi-character literal tokens"
> > msgstr "använd \"...\" för flerteckens bokstavliga tecken"
> 
> Det här låter väldigt konstigt.  "... för bokstavliga syntaxsymboler med flera
> tecken" kanske?

peter karlsson wrote:
> > #: src/reader.c:1707
> > #, c-format
> > msgid "tokens %s and %s both assigned number %d"
> > msgstr "tecknen %s och %s har båda nummer %d"
> 
> Som redan kommenterats är "tecken" inte en bra översättning av "token".
> Tyvärr är ju "symbol" redan upptaget...

Martin Norbäck writes:
> > #: src/conflicts.c:48
> > #, c-format
> > msgid "Conflict in state %d between rule %d and token %s resolved as %s.\n"
> > msgstr "Konflikt i tillstånd %d mellan regel %d och tecken %s, löstes med %s.\n"
> 
> Token är inte tecken. Snarare "symbol".

> > #: src/lex.c:438
> > msgid "use \"...\" for multi-character literal tokens"
> > msgstr "använd \"...\" för flerteckens bokstavliga tecken"
> 
> Jag förstår varken originalet eller översättningen. Det känns inte som
> de betyder samma sak, dock.

> > #: src/reader.c:1397
> > #, c-format
> > msgid "rule given for %s, which is a token"
> > msgstr "regel given för %s, som är en tecken"
> 
> token != tecken och det heter _ett_ tecken.

"Token" är ofta svåröversatt, inte minst här.  Jag velade lite fram
och tillbaka innan jag bestämde mig.  (Genusfelet ett par av er
noterat är nog en rest av det.)

Som Peter noterat är "symbol" redan upptaget.  De identifierare som
används för att representera icketerminaler och terminaler i
grammatiken kallas gemensamt för "symboler".  "Token" är det man får
från lexikalanalysatorn.  Det är ur grammatikens synpunkt en odelbar
enhet, men är för den skull inte entydigt bestämd.  Typiskt är 1, 3, 7
tre "tokens" som motsvaras av icketerminalen "NUMBER" eller så.

Vad f-n kallar man detta på svenska?  "Tecken" var det bästa jag kunde
komma på.  "Polett" passar liksom inte ...

Arkiv genererat av hypermail 2.1.1.