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}?