integer(I) -->
digit(D0),
digits(D),
{ number_codes(I, [D0|D])
}.
digits([D|T]) -->
digit(D), !,
digits(T).
digits([]) -->
[].
digit(D) -->
[D],
{ code_type(D, digit)
}.
但是此示例仅在整数位于字符串开头时才解析整数(因为 digit(D0) 失败是 D0 不是数字代码)。如何解析字符串中任意位置的整数,例如“abc123def”?