1:- module(tidylog_number_octal, [octal//1]). 2 3% Parse Prolog octal number (never used for generating) 4 5octal(Neg) --> 6 "-", 7 octal_(N), 8 { Neg is -N }. 9octal(N) --> 10 octal_(N). 11 12octal_(N) --> 13 "0o", 14 digit(Code), 15 digits(Codes), 16 { name(N,[0'0, 0'o, Code|Codes]) }. 17 18 19digit(C) --> 20 [C], 21 { between(0'0,0'7,C) }. 22 23 24digits([0'_,Code|Codes]) --> 25 [0'_], 26 digit(Code), 27 digits(Codes). 28digits([Code|Codes]) --> 29 digit(Code), 30 digits(Codes). 31digits([]) --> 32 []