تحليل كلمة محجوزة في Parsing Expressive Grammar (PEG.js)

StackOverflow https://stackoverflow.com//questions/11712909

  •  13-12-2019
  •  | 
  •  

سؤال

ال سؤال مماثل و ال موقع المؤلف أعطني حلول مثل هذا:

Identifier "identifier"
  = !ReservedWord [A-Za-z_]+

ReservedWord
  = "test"
  / "abc"

لا يمكن لهذا الحل تحليل معرف مثل "test_var".

في هذا المثال، القواعد النحوية !ReservedWord ستحصر كافة المتغيرات التي تبدأ بـ "test" أو "abc".

شكرا لك مقدما.

هل كانت مفيدة؟

المحلول

ReservedWord ينجح، عند اكتمال الكلمة المحجوزة، بغض النظر عما يلي.لذا فإن الحل هو جعله يفشل عندما يكون هناك تطابق أطول يتضمن المزيد من أحرف المعرف:

Identifier "identifier"
  = !ReservedWord [A-Za-z_]+

ReservedWord
  = ( "test" / "abc" ) ![A-Za-z_]
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top