ಶುಕ್ರವಾರ, ಆಗಸ್ಟ್ 2 ರಂದು, C ಮತ್ತು C++ ಭಾಷೆಗಳಿಗೆ ಲೆಕ್ಸಿಕಲ್ ವಿಶ್ಲೇಷಕಗಳ ಉಚಿತ ಜನರೇಟರ್ re2c ಬಿಡುಗಡೆಯಾಯಿತು. Re2c ಅನ್ನು 1993 ರಲ್ಲಿ ಪೀಟರ್ ಬಾಂಬೌಲಿಸ್ ಅವರು ಅತ್ಯಂತ ವೇಗದ ಲೆಕ್ಸಿಕಲ್ ವಿಶ್ಲೇಷಕಗಳ ಪ್ರಾಯೋಗಿಕ ಜನರೇಟರ್ ಆಗಿ ಬರೆದಿದ್ದಾರೆ, ಇತರ ಜನರೇಟರ್‌ಗಳಿಂದ ಉತ್ಪತ್ತಿಯಾದ ಕೋಡ್‌ನ ವೇಗ ಮತ್ತು ಅಸಾಮಾನ್ಯವಾಗಿ ಹೊಂದಿಕೊಳ್ಳುವ ಬಳಕೆದಾರ ಇಂಟರ್‌ಫೇಸ್‌ನಿಂದ ವಿಶ್ಲೇಷಕಗಳನ್ನು ಸುಲಭವಾಗಿ ಮತ್ತು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಕೋಡ್ ಬೇಸ್‌ಗೆ ಅಳವಡಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಅಂದಿನಿಂದ, ಯೋಜನೆಯನ್ನು ಸಮುದಾಯವು ಅಭಿವೃದ್ಧಿಪಡಿಸಿದೆ ಮತ್ತು ಔಪಚಾರಿಕ ವ್ಯಾಕರಣಗಳು ಮತ್ತು ಸೀಮಿತ ಸ್ಥಿತಿಯ ಯಂತ್ರಗಳ ಕ್ಷೇತ್ರದಲ್ಲಿ ಪ್ರಯೋಗಗಳು ಮತ್ತು ಸಂಶೋಧನೆಗಳಿಗೆ ವೇದಿಕೆಯಾಗಿ ಮುಂದುವರಿಯುತ್ತದೆ.

ಆವೃತ್ತಿ 1.2 ರಲ್ಲಿ ಮುಖ್ಯ ಆವಿಷ್ಕಾರಗಳು:

  • ಇನ್‌ಪುಟ್ ಡೇಟಾದ ಅಂತ್ಯವನ್ನು ಪರಿಶೀಲಿಸಲು ಹೊಸ (ಸರಳೀಕೃತ) ಮಾರ್ಗವನ್ನು ಸೇರಿಸಲಾಗಿದೆ
    (ಇಂಗ್ಲಿಷ್ "EOF ನಿಯಮ").
    ಇದಕ್ಕಾಗಿ, re2c:eof ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ,
    ಟರ್ಮಿನಲ್ ಅಕ್ಷರವನ್ನು ಆಯ್ಕೆ ಮಾಡಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ,
    ಮತ್ತು ಲೆಕ್ಸರ್ ವೇಳೆ ಫೈರ್ ಮಾಡುವ ವಿಶೇಷ $ ನಿಯಮ
    ಇನ್‌ಪುಟ್ ಡೇಟಾದ ಅಂತ್ಯವನ್ನು ಯಶಸ್ವಿಯಾಗಿ ತಲುಪಿದೆ.
    ಐತಿಹಾಸಿಕವಾಗಿ, re2c ಹಲವಾರು ಪರಿಶೀಲನಾ ವಿಧಾನಗಳ ಆಯ್ಕೆಯನ್ನು ಒದಗಿಸುತ್ತದೆ
    ಮಿತಿ, ದಕ್ಷತೆ ಮತ್ತು ಸರಳತೆಯಲ್ಲಿ ವ್ಯತ್ಯಾಸಗೊಳ್ಳುವ ಒಳಹರಿವಿನ ಅಂತ್ಯ
    ಅರ್ಜಿಗಳನ್ನು. ಹೊಸ ವಿಧಾನವನ್ನು ಬರೆಯುವ ಕೋಡ್ ಅನ್ನು ಸರಳಗೊಳಿಸಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ
    ಪರಿಣಾಮಕಾರಿ ಮತ್ತು ವ್ಯಾಪಕವಾಗಿ ಅನ್ವಯವಾಗುವಂತೆ ಉಳಿದಿರುವಾಗ. ಹಳೆಯ ವಿಧಾನಗಳು
    ಇನ್ನೂ ಕೆಲಸ ಮಾಡುತ್ತದೆ ಮತ್ತು ಕೆಲವು ಸಂದರ್ಭಗಳಲ್ಲಿ ಆದ್ಯತೆ ನೀಡಬಹುದು.

  • ನಿರ್ದೇಶನವನ್ನು ಬಳಸಿಕೊಂಡು ಬಾಹ್ಯ ಫೈಲ್‌ಗಳನ್ನು ಸೇರಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಸೇರಿಸಲಾಗಿದೆ
    /*!include:re2c "file.re" */ ಅಲ್ಲಿ file.re
    ಇದು ಒಳಗೊಂಡಿರುವ ಫೈಲ್‌ನ ಹೆಸರು. ಫೈಲ್ ಡೈರೆಕ್ಟರಿ ಸೇರಿದಂತೆ ಫೈಲ್‌ಗಳಿಗಾಗಿ Re2c ಹುಡುಕುತ್ತದೆ,
    ಹಾಗೆಯೇ -I ಆಯ್ಕೆಯನ್ನು ಬಳಸಿಕೊಂಡು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಮಾರ್ಗಗಳ ಪಟ್ಟಿಯಲ್ಲಿ.
    ಒಳಗೊಂಡಿರುವ ಫೈಲ್‌ಗಳು ಇತರ ಫೈಲ್‌ಗಳನ್ನು ಒಳಗೊಂಡಿರಬಹುದು.
    Re2c ಒಳಗೊಂಡಿರುವ/ ಡೈರೆಕ್ಟರಿಯಲ್ಲಿ "ಸ್ಟ್ಯಾಂಡರ್ಡ್" ಫೈಲ್‌ಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ
    ಯೋಜನೆ - ಉಪಯುಕ್ತ ವ್ಯಾಖ್ಯಾನಗಳು ಅಲ್ಲಿ ಸಂಗ್ರಹಗೊಳ್ಳುತ್ತವೆ ಎಂದು ನಿರೀಕ್ಷಿಸಲಾಗಿದೆ
    ನಿಯಮಿತ ಅಭಿವ್ಯಕ್ತಿಗಳು, ಪ್ರಮಾಣಿತ ಲೈಬ್ರರಿಯಂತಹವು.
    ಇಲ್ಲಿಯವರೆಗೆ, ಕಾರ್ಮಿಕರ ಕೋರಿಕೆಯ ಮೇರೆಗೆ, ಯುನಿಕೋಡ್ ವರ್ಗಗಳ ವ್ಯಾಖ್ಯಾನಗಳೊಂದಿಗೆ ಒಂದು ಫೈಲ್ ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ.

  • ಅನಿಯಂತ್ರಿತವಾಗಿ ಹೆಡರ್ ಫೈಲ್‌ಗಳನ್ನು ರಚಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಸೇರಿಸಲಾಗಿದೆ
    -t --type-ಹೆಡರ್ ಆಯ್ಕೆಗಳನ್ನು ಬಳಸುವ ವಿಷಯ (ಅಥವಾ ಸೂಕ್ತ
    ಕಾನ್ಫಿಗರೇಶನ್‌ಗಳು) ಮತ್ತು ಹೊಸ ನಿರ್ದೇಶನಗಳು /*!header:re2c:on*/ ಮತ್ತು
    /*!ಹೆಡರ್:re2c:off*/. ಸಂದರ್ಭಗಳಲ್ಲಿ ಇದು ಉಪಯುಕ್ತವಾಗಬಹುದು
    re2c ವೇರಿಯೇಬಲ್‌ಗಳು, ರಚನೆಗಳು ಮತ್ತು ಮ್ಯಾಕ್ರೋಗಳ ವ್ಯಾಖ್ಯಾನಗಳನ್ನು ರಚಿಸಬೇಕಾದಾಗ,
    ಇತರ ಅನುವಾದ ಘಟಕಗಳಲ್ಲಿ ಬಳಸಲಾಗುತ್ತದೆ.

  • Re2c ಈಗ UTF8 ಅಕ್ಷರಗಳು ಮತ್ತು ನಿಯಮಿತ ಅಭಿವ್ಯಕ್ತಿಗಳಲ್ಲಿ ಅಕ್ಷರ ವರ್ಗಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುತ್ತದೆ.
    ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ, re2c "∀x ∃y" ನಂತಹ ಅಭಿವ್ಯಕ್ತಿಗಳನ್ನು ಪಾರ್ಸ್ ಮಾಡುತ್ತದೆ.
    1-ಬಿಟ್ ASCII ಅಕ್ಷರಗಳ ಅನುಕ್ರಮ e2 88 80 78 20 e2 88 83 79
    (ಹೆಕ್ಸ್ ಕೋಡ್‌ಗಳು), ಮತ್ತು ಬಳಕೆದಾರರು ಯುನಿಕೋಡ್ ಅಕ್ಷರಗಳನ್ನು ಹಸ್ತಚಾಲಿತವಾಗಿ ತಪ್ಪಿಸಿಕೊಳ್ಳಬೇಕು:
    "u2200x u2203y". ಇದು ಅನೇಕರಿಗೆ ತುಂಬಾ ಅನಾನುಕೂಲ ಮತ್ತು ಅನಿರೀಕ್ಷಿತವಾಗಿದೆ
    ಬಳಕೆದಾರರು (ನಿರಂತರ ದೋಷ ವರದಿಗಳಿಂದ ಸಾಕ್ಷಿಯಾಗಿದೆ). ಹಾಗಾದರೆ ಈಗ
    re2c --input-encoding ಆಯ್ಕೆಯನ್ನು ಒದಗಿಸುತ್ತದೆ ,
    ಇದು ನಿಮಗೆ ನಡವಳಿಕೆಯನ್ನು ಬದಲಾಯಿಸಲು ಮತ್ತು "∀x ∃y" ಅನ್ನು ಪಾರ್ಸ್ ಮಾಡಲು ಅನುಮತಿಸುತ್ತದೆ
    2200 78 20 2203 79.

  • Re2c ಈಗ -r --reuse ಮೋಡ್‌ನಲ್ಲಿ ಸಾಮಾನ್ಯ re2c ಬ್ಲಾಕ್‌ಗಳ ಬಳಕೆಯನ್ನು ಅನುಮತಿಸುತ್ತದೆ.
    ಇನ್ಪುಟ್ ಫೈಲ್ ಅನೇಕ ಬ್ಲಾಕ್ಗಳನ್ನು ಹೊಂದಿದ್ದರೆ ಮತ್ತು ಅವುಗಳಲ್ಲಿ ಕೆಲವು ಮಾತ್ರ ಇದು ಅನುಕೂಲಕರವಾಗಿರುತ್ತದೆ
    ಮರುಬಳಕೆ ಮಾಡಬೇಕಾಗಿದೆ.

  • ಈಗ ನೀವು ಎಚ್ಚರಿಕೆಗಳು ಮತ್ತು ದೋಷ ಸಂದೇಶಗಳ ಸ್ವರೂಪವನ್ನು ಹೊಂದಿಸಬಹುದು
    ಹೊಸ --location-format ಆಯ್ಕೆಯನ್ನು ಬಳಸುವುದು . GNU ಸ್ವರೂಪವನ್ನು ಪ್ರದರ್ಶಿಸಲಾಗುತ್ತದೆ
    ಫೈಲ್‌ಹೆಸರು:ಲೈನ್:ಕಾಲಮ್:, ಮತ್ತು MSVC ಫಾರ್ಮ್ಯಾಟ್ ಫೈಲ್‌ಹೆಸರು(ಲೈನ್,ಕಾಲಮ್).
    IDE ಪ್ರಿಯರಿಗೆ ಈ ವೈಶಿಷ್ಟ್ಯವು ಉಪಯುಕ್ತವಾಗಬಹುದು.
    --verbose ಆಯ್ಕೆಯನ್ನು ಸಹ ಸೇರಿಸಲಾಗಿದೆ, ಇದು ಯಶಸ್ವಿಯಾದರೆ ಸಣ್ಣ ವಿಜಯ ಸಂದೇಶವನ್ನು ಮುದ್ರಿಸುತ್ತದೆ.

  • ಫ್ಲೆಕ್ಸ್‌ನೊಂದಿಗೆ "ಹೊಂದಾಣಿಕೆ" ಮೋಡ್ ಅನ್ನು ಸುಧಾರಿಸಲಾಗಿದೆ - ಕೆಲವು ಪಾರ್ಸಿಂಗ್ ದೋಷಗಳನ್ನು ಸರಿಪಡಿಸಲಾಗಿದೆ ಮತ್ತು
    ಅಪರೂಪದ ಸಂದರ್ಭಗಳಲ್ಲಿ ತಪ್ಪಾದ ಆಪರೇಟರ್ ಆದ್ಯತೆ.
    ಐತಿಹಾಸಿಕವಾಗಿ, -F --flex-support ಆಯ್ಕೆಯು ನಿಮಗೆ ಕೋಡ್ ಬರೆಯಲು ಅವಕಾಶ ಮಾಡಿಕೊಟ್ಟಿತು
    ಫ್ಲೆಕ್ಸ್ ಶೈಲಿ ಮತ್ತು re2c ಶೈಲಿಯಲ್ಲಿ ಮಿಶ್ರಣವಾಗಿದೆ, ಇದು ಪಾರ್ಸಿಂಗ್ ಅನ್ನು ಸ್ವಲ್ಪ ಕಷ್ಟಕರವಾಗಿಸುತ್ತದೆ.
    ಹೊಸ ಕೋಡ್‌ನಲ್ಲಿ ಫ್ಲೆಕ್ಸ್ ಹೊಂದಾಣಿಕೆ ಮೋಡ್ ಅನ್ನು ಅಪರೂಪವಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ,
    ಆದರೆ re2c ಹಿಮ್ಮುಖ ಹೊಂದಾಣಿಕೆಗಾಗಿ ಅದನ್ನು ಬೆಂಬಲಿಸುವುದನ್ನು ಮುಂದುವರೆಸಿದೆ.

  • ಅಕ್ಷರ ವರ್ಗದ ವ್ಯವಕಲನ ಆಪರೇಟರ್ / ಈಗ ಅನ್ವಯಿಸುತ್ತದೆ
    ಎನ್ಕೋಡಿಂಗ್ ಅನ್ನು ವಿಸ್ತರಿಸುವ ಮೊದಲು, ಇದು ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯ ಸಂದರ್ಭಗಳಲ್ಲಿ ಬಳಸಲು ಅನುಮತಿಸುತ್ತದೆ,
    ವೇರಿಯಬಲ್ ಅಕ್ಷರ ಉದ್ದದ ಎನ್ಕೋಡಿಂಗ್ ಅನ್ನು ಬಳಸಿದರೆ (ಉದಾಹರಣೆಗೆ UTF8).

  • ಔಟ್‌ಪುಟ್ ಫೈಲ್ ಅನ್ನು ಈಗ ಪರಮಾಣುವಾಗಿ ರಚಿಸಲಾಗಿದೆ: re2c ಮೊದಲು ತಾತ್ಕಾಲಿಕ ಫೈಲ್ ಅನ್ನು ರಚಿಸುತ್ತದೆ
    ಮತ್ತು ಅದರೊಳಗೆ ಫಲಿತಾಂಶವನ್ನು ಬರೆಯುತ್ತದೆ, ಮತ್ತು ನಂತರ ತಾತ್ಕಾಲಿಕ ಫೈಲ್ ಅನ್ನು ಔಟ್ಪುಟ್ಗೆ ಮರುಹೆಸರಿಸುತ್ತದೆ
    ಒಂದು ಕಾರ್ಯಾಚರಣೆ.

  • ದಸ್ತಾವೇಜನ್ನು ಪೂರ್ಣಗೊಳಿಸಲಾಗಿದೆ ಮತ್ತು ಪುನಃ ಬರೆಯಲಾಗಿದೆ; ನಿರ್ದಿಷ್ಟವಾಗಿ, ಹೊಸದನ್ನು ಸೇರಿಸಲಾಯಿತು
    ಅಧ್ಯಾಯಗಳು ಬಫರ್ ಅನ್ನು ಭರ್ತಿ ಮಾಡುವ ಬಗ್ಗೆ
    и ಇನ್‌ಪುಟ್ ಡೇಟಾದ ಅಂತ್ಯವನ್ನು ಪರಿಶೀಲಿಸುವ ವಿಧಾನಗಳ ಬಗ್ಗೆ.
    ಹೊಸ ದಸ್ತಾವೇಜನ್ನು ರೂಪದಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗಿದೆ
    ಸಮಗ್ರ ಒಂದು ಪುಟದ ಕೈಪಿಡಿ
    ಉದಾಹರಣೆಗಳೊಂದಿಗೆ (ಅದೇ ಮೂಲಗಳನ್ನು ಮ್ಯಾನ್‌ಪೇಜ್‌ನಲ್ಲಿ ಮತ್ತು ಆನ್‌ಲೈನ್ ದಸ್ತಾವೇಜನ್ನು ಪ್ರದರ್ಶಿಸಲಾಗುತ್ತದೆ).
    ಫೋನ್‌ಗಳಲ್ಲಿ ಸೈಟ್‌ನ ಓದುವಿಕೆಯನ್ನು ಸುಧಾರಿಸಲು ಕಳಪೆ ಪ್ರಯತ್ನಗಳನ್ನು ಮಾಡಲಾಗಿದೆ.

  • ಅಭಿವರ್ಧಕರ ದೃಷ್ಟಿಕೋನದಿಂದ, re2c ಹೆಚ್ಚು ಸಂಪೂರ್ಣ ಉಪವ್ಯವಸ್ಥೆಯನ್ನು ಪಡೆದುಕೊಂಡಿದೆ
    ಡೀಬಗ್ ಮಾಡುವುದು ಡೀಬಗ್ ಮಾಡುವ ಕೋಡ್ ಅನ್ನು ಈಗ ಬಿಡುಗಡೆ ಬಿಲ್ಡ್‌ಗಳಲ್ಲಿ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ ಮತ್ತು
    ಕಾನ್ಫಿಗರ್ ಆಯ್ಕೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಸಕ್ರಿಯಗೊಳಿಸಬಹುದು --enable-debug.

ಈ ಬಿಡುಗಡೆಯು ಬಹಳ ಸಮಯ ತೆಗೆದುಕೊಂಡಿತು - ಸುಮಾರು ಇಡೀ ವರ್ಷ.
ಹೆಚ್ಚಿನ ಸಮಯವನ್ನು, ಯಾವಾಗಲೂ, ಸೈದ್ಧಾಂತಿಕ ಚೌಕಟ್ಟನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಲು ಮತ್ತು ಬರವಣಿಗೆಗೆ ವ್ಯಯಿಸಲಾಯಿತು
ಲೇಖನಗಳು "NFA ನಲ್ಲಿ ಸಮರ್ಥ POSIX ಸಬ್‌ಮ್ಯಾಚ್ ಹೊರತೆಗೆಯುವಿಕೆ".
ಲೇಖನದಲ್ಲಿ ವಿವರಿಸಲಾದ ಅಲ್ಗಾರಿದಮ್‌ಗಳನ್ನು ಪ್ರಾಯೋಗಿಕ ಗ್ರಂಥಾಲಯ libre2c ನಲ್ಲಿ ಅಳವಡಿಸಲಾಗಿದೆ
(ಲೈಬ್ರರಿ ಮತ್ತು ಮಾನದಂಡಗಳನ್ನು ನಿರ್ಮಿಸುವುದನ್ನು ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ ಮತ್ತು ಕಾನ್ಫಿಗರ್ ಆಯ್ಕೆಯಿಂದ ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ
--ಎನೇಬಲ್-ಲಿಬ್ಸ್). ಲೈಬ್ರರಿಯನ್ನು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವುದಕ್ಕೆ ಪ್ರತಿಸ್ಪರ್ಧಿಯಾಗಿ ಕಲ್ಪಿಸಲಾಗಿಲ್ಲ
RE2 ನಂತಹ ಯೋಜನೆಗಳು, ಆದರೆ ಹೊಸ ಅಭಿವೃದ್ಧಿಗೆ ಸಂಶೋಧನಾ ವೇದಿಕೆಯಾಗಿ
ಕ್ರಮಾವಳಿಗಳು (ನಂತರ ಇದನ್ನು re2c ಅಥವಾ ಇತರ ಯೋಜನೆಗಳಲ್ಲಿ ಬಳಸಬಹುದು).
ಪರೀಕ್ಷೆ, ಮಾನದಂಡಗಳು ಮತ್ತು ಇತರ ಭಾಷೆಗಳಿಗೆ ಬೈಂಡಿಂಗ್‌ಗಳನ್ನು ರಚಿಸುವ ದೃಷ್ಟಿಯಿಂದ ಇದು ಅನುಕೂಲಕರವಾಗಿದೆ.

ಈ ಬಿಡುಗಡೆಗೆ ಸಹಾಯ ಮಾಡಿದ ಎಲ್ಲರಿಗೂ re2c ಡೆವಲಪರ್‌ಗಳಿಂದ ಧನ್ಯವಾದಗಳು,
ಮತ್ತು ಸಮುದಾಯಕ್ಕೆ ಸಾಮಾನ್ಯವಾಗಿ ಕಲ್ಪನೆಗಳು, ದೋಷ ವರದಿಗಳು, ತೇಪೆಗಳು, ನೈತಿಕತೆ, ಇತ್ಯಾದಿ. ;]

ಮೂಲ: linux.org.ru

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ