025
13.01.2004, 21:35 Uhr
Pablo
Supertux (Operator)
|
| Zitat: |
~ben postete ja genau pablo genau das sollte mein programm auch können..leider fehlts mir noch ein bischen an wissen um das zu verstehen..wie krieg ihc das bis morgen bloß in meine birne rein
|
Dir musst zuerst klar sein, was parsing bedeutet. Parsing ist das Erkennen von Zeichen in einer Zeichenkette. Aber es gibt nicht beliebige Zeichen. Eine Grammatik bestimmt, welche Tokens es geben muss und welche Regel es geben muss. Zum Beispiel: +*-/ sind Token, die sind Zeichen, die man nicht mehr durch andere ersetzen kannst. Aber EXPRESSION kannst du zum Beispiel durch NUMBERS tokens NUMBERS token EXPRESSIONS ersetzen, wobei NUMBERS=1,2,3,4,5,6,7,8,9, token=+-*/
EXPRESSION -> NUMBERS tokens NUMBERS token EXPRESSIONS
5+3*7 ist expression, da 5, 3 und 7 zu den NUMEBRS gehören. +* zu den Tokens und die Komosition von NUMBERS tokens NUMBERS macht eine EXPRESSION, usw.
Wenn dir das klar ist, kannst du dir eine einfache Grammatik basteln, die alles tut, was du wllst. Die Grammatik zu diesem Taschenrechner ist:
| Zitat: |
program: END // END ist Eingabeende expr_list END
expr_list: expression PRINT // PRINT ist Semikolon expression PRINT expr_list
expression: expression + term expression - term term
term: term / primary term * primary primary
primary: NUMBER NAME NAME = expression - primary ( expression )
|
-- A! Elbereth Gilthoniel! silivren penna míriel o menel aglar elenath, Gilthoniel, A! Elbereth! Dieser Post wurde am 13.01.2004 um 21:36 Uhr von Pablo editiert. |