1:- module(tidylog_number_binary, [binary//1]). 2 3% Parse Prolog binary number (never used for generating) 4 5binary(Neg) --> 6 "-", 7 binary_(N), 8 { Neg is -N }. 9binary(N) --> 10 binary_(N). 11 12binary_(N) --> 13 "0b", 14 digit(Code), 15 digits(Codes), 16 { name(N,[0'0, 0'b, Code|Codes]) }. 17 18 19digit(C) --> 20 [C], 21 { C=0'0; C=0'1 }. 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 []