x-----x
(x--) -- -x
के रूप में पार्स किया गया है का मूल्यांकन किया गया है, और यहाँ --
एक अभिव्यक्ति है जो एक चर नहीं है करने के लिए लागू किया जाता है। इसकी अनुमति नहीं है।
इसका कारण निम्न है। पार्सिंग में पहला चरण इनपुट स्ट्रीम को टोकन करना है: इनपुट स्ट्रीम, जिसमें वर्ण होते हैं, को टुकड़ों में समूहीकृत किया जाता है जिन्हें टोकन कहा जाता है। टोकन तार हैं जो जावा के लिए सार्थक हैं, उदा। कीवर्ड, ऑपरेटर, या पहचानकर्ता।
टोकनिंग लालची: जब तक एक और चरित्र टोकन में जोड़ा जा सकता है जैसे कि यह अभी भी वैध टोकन है, तो चरित्र जोड़ा जाता है। इस प्रकार, उदाहरण के लिए forLoop
को एक पहचानकर्ता के रूप में माना जाता है, न कि कीवर्ड for
के बाद पहचानकर्ता Loop
।
तार -
और --
जावा में मान्य टोकन दोनों हैं। तो जब टोकननाइज़र ---
से मुठभेड़ करता है, तो यह पहला अक्षर पढ़ता है। हालांकि यह जानता है कि -
एक मान्य टोकन है, यह पहले अगले चरित्र को देखता है, और यह तय करता है कि --
एक मान्य टोकन भी है, इसलिए पहला टोकन लौटाया जाएगा --
, -
नहीं।
x --- x और x-- - x के बीच एक अंतर है। संकलक को यह जानना चाहिए कि क्या आपका मतलब x - --x या x-- - x है? – Stultuske