อักขระพิเศษบางตัวจะได้รับอนุญาตก็ต่อเมื่อนำหน้าด้วยอักขระ Escape
ฉันต้องการที่จะสร้างการแสดงออกปกติ (ในรูปแบบของไฟแนนเชี่ที่มีมากขึ้น OCaml เหมือนไวยากรณ์)สำหรับการเรียนของสตริงที่4 ตัวอักษร[
, ]
, #
,'
'
ได้รับอนุญาตเท่านั้นถ้าพวกเขาจะนำหน้าด้วยตัวหนี
นี่คือตัวอย่างที่ถูกต้อง:
'#Data
,abc'#Headers
,abc'#Totals'[efg
,123'#Totals']efg
,abc
,123
นี่คือตัวอย่างบางส่วนที่ไม่ถูกต้อง:
#Data
,abc#Headers
,abc#Totals[efg
,123#Totals]efg
,'#Totals[efg
หวังว่าคำจำกัดความจะชัดเจน อย่างแรกไม่มีใครรู้วิธีสร้างนิพจน์ทั่วไปดังกล่าว? ประการที่สองมีใครรู้วิธีสร้างนิพจน์ทั่วไปดังกล่าว(ในรูปแบบของ lex ด้วยไวยากรณ์ที่คล้าย OCaml มากกว่า)ที่ ocamllex ยอมรับได้หรือไม่?
คำตอบ
คุณไม่ได้บอกว่าสตริงที่ยอมรับมีลักษณะเหมือนตัวอย่างอื่น ๆ เพียงแค่ให้เป็นรูปธรรมขอบอกว่าตัวอักษรตัวพิมพ์เล็กและตัวเลขที่ได้รับอนุญาตและ 4 '
ตัวอักษรพิเศษที่ได้รับอนุญาตเท่านั้นถ้านำหน้าด้วย
จากนั้นอธิบายโดยการปิดคลีนของชุดสตริงอักขระหนึ่งตัว 36 ตัวและสตริงสองอักขระ 4 ตัว
ซึ่งมีลักษณะดังนี้:
(['a' - 'z' '0' - '9'] | '\'' ['\'' '#' '[' ']'])*