guix/gnu/packages/patches/shakespeare-spl-fix-grammar.patch
Leo Prikler 142f8713ab
gnu: Add shakespeare-spl.
* gnu/packages/patches/shakespeare-spl-fix-grammar.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it here.
* gnu/packages/esolangs.scm (shakespeare-spl): New variable.
2020-12-29 13:54:48 +01:00

16 lines
791 B
Diff

ROMAN_HUNDREDS, ROMAN_TENS and ROMAN_ONES seem to use syntax, that is not
recognized (any longer?) by flex, so let's expand their definitions.
Index: spl-1.2.1/include/roman_numbers.metaflex
===================================================================
--- spl-1.2.1.orig/include/roman_numbers.metaflex
+++ spl-1.2.1/include/roman_numbers.metaflex
@@ -1,5 +1,5 @@
ROMAN_THOUSANDS m+
-ROMAN_HUNDREDS (c(d|m)|dc{0,3}|c{1,3})
-ROMAN_TENS (x(l|c)|lx{0,3}|x{1,3})
-ROMAN_ONES (i(v|x)|vi{0,3}|i{1,3})
+ROMAN_HUNDREDS (c(d|m|c?c?)|dc?c?c?)
+ROMAN_TENS (x(l|c|x?x?)|lx?x?x?)
+ROMAN_ONES (i(v|x|i?i?)|vi?i?i?)
ROMAN_NUMBER {ROMAN_ONES}|{ROMAN_TENS}{ROMAN_ONES}?|{ROMAN_HUNDREDS}{ROMAN_TENS}?{ROMAN_ONES}?|{ROMAN_THOUSANDS}{ROMAN_HUNDREDS}?{ROMAN_TENS}?{ROMAN_ONES}?