Arıyorum net bir tanım ne bir "tokenizer", 'çözümleyici" ve "lexers" ve nasıl oldukları ile ilgili birbirlerine ve kullanılır?
Arıyorum net bir tanım ne bir "tokenizer", "çözümleyici" ve "lexer" ve nasıl oldukları ile ilgili birbirine (örneğin, bir çözümleyici kullanın bir tokenizer ya da tam tersi)? C/h kaynak veri bildirim ve tanımlar ayıklamak için dosyaları geçecek bir program oluşturmak istiyorum.
Örnekler aradım ve biraz bilgi bulabilirsiniz, ama gerçekten birbirimizle nasıl ilişki kurmak dilbilgisi kuralları, ayrıştırma ağaçları ve soyut sözdizimi ağacı gibi temel kavramları kavramak için mücadele. Bu kavramlar gerçek bir programına kayıtlı olması gerekir sonuçta, ama 1), 2 benziyorlar mı ne) orada ortak uygulamaları.
Ben bakıyorum Wikipedia'da bu konular ve programlar gibi Lex ve Yacc, ama asla içinde geçmiş bir derleyici sınıf (EE büyük) ben zor anlamak için tam olarak ne oluyor.
Mark
CEVAP
Bir tokenizer boşluk (sekme, boşluk, yeni satır) bakarak belirteçleri içine metin akışı, genellikle sonları.
Bir lexer temelde bir tokenizer, ama genellikle belirteçleri bu sembolik bir sayı, bir simge, bir dize, bu diğer token eşitlik operatörü -- ekstra içerik ekler.
Bir parser, lexer gelen belirteçleri akışı alır ve soyut sözdizimi ağacı (genellikle) programın orijinal metin tarafından temsil temsil dönüşür.
Kontrol ettim, bu konuda en iyi kitap "Compilers: Principles, Techniques, and Tools" genellikle sadece olarak bilinen son "Dragon Kitap".
html5: nasıl kullanılır "gerekli&...
Nasıl kullanılır "" xpath de...
Ne &; dekoratörler" quot; ve nasıl...
Nasıl kullanılır "&; raylar üzeri...
Nasıl tamir &; döngü için " ilk bildir...