Startseite
−
Sitemap
−
Downloads
−
Hilfe
−
Impressum
−
Programmiersprachen
−
Chat
Zeichenstrom −> Tokenstrom.
Tinyray { Background { [1,0.5,0] } Sphere { [0,0,0]; 1 } Sun { [1,1,1]; [1,1,1] } }
->
TINYRAY LBRACE BACKGROUND LBRACE LBRACKET REAL SEP REAL SEP REAL RBRACKET RBRACE SPHERE LBRACE LBRACKET REAL SEP REAL SEP REAL RBRACKET SEP REAL RBRACE SUN LBRACE LBRACKET REAL SEP REAL SEP REAL RBRACKET SEP LBRACKET REAL SEP REAL SEP REAL RBRACKET RBRACE RBRACE
Token[type=TINYRAY; location=(0,0); value='Tinyray']
Token[type=LBRACE; location=(8,0); value='{']
Token[type=BACKGROUND; location=(10,0); value='Background']
Token[type=LBRACE; location=(21,0); value='{']
Token[type=LBRACE; location=(23,0); value='[']
Token[type=REAL; location=(24,0); value='1']
Token[type=SEP; location=(25,0); value=',']
Token[type=REAL; location=(26,0); value='0.5']
Token[type=SEP; location=(29,0); value=',']
Token[type=REAL; location=(30,0); value='0']
Token[type=RBRACKET; location=(31,0); value=']']
...
„type”,
„location”
und
„value”
werden in der
syntaktischen Analyse
wie folgt verwendet:
Tinyray-Grammatik TG = (N, T, P, S) mit
|
package tinyray.frontend;
|
package tinyray.frontend;
|
getToken()
nextToken()
package tinyray.frontend;
|
s
im Prinzip wie einen Iterator.
Der Anwender,
im häufigsten Falle der Parser,
iteriert mit dem Scanner über dem Tinyray-Quellprogramm nicht zeichenweise, sondern tokenweise.
...
|
package tinyray.examples;
|
„Tinyray{}”
1. Token[type=TINYRAY; location=(0,0); value='Tinyray']
|
„Tinyray{Sphere{[0.3,0,1];2.0}}”
1. Token[type=TINYRAY; location=(0,0); value='Tinyray']
|
package tinyray.examples;
|
TINYRAY "Tinyray" in [0:0]
|
TINYRAY "Tinyray" in [0:0]
|
package tinyray.examples;
|
// Hallo Welt!
|
COMMENT "// Hallo Welt!" in [0:0]
|
Tinyray {
|
„pyramid.tinyray”
mit einem TAB-Zeichen gesetzt sind.
Ein TAB-Zeichen wird hier als normales Zeichen gelesen.
TINYRAY "Tinyray" in [0:0]
|
„java ScanFile pyramid.tinyray”
extrem lang und geradezu unüberschaubar.
Doch dieser Output ist nicht für den Menschen gedacht, sondern für den
Parser.
Der Parser versucht diese
Token−Liste
(Tokenstrom)
mit der dazugehörigen Grammatik zu matchen.
package tinyray.examples;
|