2016-04-15 17 views
0

Also programmiere ich ein lexikalisches Analyseprogramm (in PHP) als Hausaufgabe und ich muss ein C Programm tokenisieren.Analysiere einen C-Ausdruck aus einer lexikalischen Analyseperspektive

Ich habe dieses folgende Stück Code aus dem C Code, den ich zu analysieren: +e25.f12.e--, die dann in OPERATOR => +, VARIABLE => e25 tokenize würden aber überspringen .f12.e--, weil sie es als Fehler signalisiert. Jetzt bin ich mir nicht sicher, ob das das richtige Verhalten ist, ob der Algorithmus richtig funktioniert oder ob er das auch token sollte (wenn es sollte, kannst du bitte die Tokenisierung von .f12.e-- zeigen?).

Zum Beispiel sollte der folgende Code tokenize wie folgt:

Code:

xe,12.34e-25" ;;kjk 'a'"'"'/* dfh sfg fsg 
    sdgf sdf 






sdfvvs svd sdv 
*//*3rf 3rfg 3f 



e2f2efef*//*/*/*/ 

Tokenisierung:

var => xe 
operator => , 
constant => 12.34e-25 
string => " ;;kjk 'a'" 
string => '"' 
operator => * 
operator =>/

Danke.

Antwort

2
+e25.f12.e 

tokenises als:

+ operator 
e25 identifier 
. operator 
f12 identifier 
. operator 
e identifier 
+0

Ich sehe, ich habe das gleiche denken, war aber nicht sicher über '.', welche Art von Operator' .' ​​in 'C'? – southpaw93

+2

Es ist der Strukturelement-Operator. Sie sollten eine vollständige Liste der Operatoren und Sonderzeichen haben, bevor Sie dieses Projekt starten. – EJP

+0

Ich sehe, danke! @EJP Ja, ich habe überall gesucht, kann keinen finden. – southpaw93