Restructuring and improving documentation.

This commit is contained in:
panasenco
2021-04-28 22:22:00 -07:00
parent cb07074246
commit dfbf291725
5 changed files with 184 additions and 131 deletions

View File

@@ -4,23 +4,7 @@
read_line_to_chars/3,
read_term_from_chars/2,
write_term_to_chars/3,
chars_base64/3,
abnf_alpha//1,
abnf_bit//1,
abnf_char//1,
abnf_cr//0,
abnf_crlf//0,
abnf_ctl//1,
abnf_digit//1,
abnf_dquote//0,
abnf_hexdig//1,
abnf_htab//0,
abnf_lf//0,
abnf_lwsp//0,
abnf_octet//1,
abnf_sp//0,
abnf_vchar//1,
abnf_wsp//0 ]).
chars_base64/3]).
:- use_module(library(dcgs)).
:- use_module(library(iso_ext)).
@@ -258,112 +242,3 @@ chars_base64(Cs, Bs, Options) :-
maplist(must_be(character), Cs),
'$chars_base64'(Cs, Bs, Padding, Charset)
).
/* [Core Rules](https://tools.ietf.org/html/rfc5234#appendix-B.1) of the
Augmented Backus-Naur Form specification (ABNF - RFC 5234). ABNF commonly
serves as the definition language for IETF communication protocols, so
having these DCGs can be extremely useful for reasoning about most IETF
syntaxes. The DCGs are presented in the order they appear in the RFC.
While some DCGs below use `char_type/2`, the most common ones are defined
manually in order to take advantage of Prolog's first-argument indexing. */
abnf_alpha('a') --> "a".
abnf_alpha('b') --> "b".
abnf_alpha('c') --> "c".
abnf_alpha('d') --> "d".
abnf_alpha('e') --> "e".
abnf_alpha('f') --> "f".
abnf_alpha('g') --> "g".
abnf_alpha('h') --> "h".
abnf_alpha('i') --> "i".
abnf_alpha('j') --> "j".
abnf_alpha('k') --> "k".
abnf_alpha('l') --> "l".
abnf_alpha('m') --> "m".
abnf_alpha('n') --> "n".
abnf_alpha('o') --> "o".
abnf_alpha('p') --> "p".
abnf_alpha('q') --> "q".
abnf_alpha('r') --> "r".
abnf_alpha('s') --> "s".
abnf_alpha('t') --> "t".
abnf_alpha('u') --> "u".
abnf_alpha('v') --> "v".
abnf_alpha('w') --> "w".
abnf_alpha('x') --> "x".
abnf_alpha('y') --> "y".
abnf_alpha('z') --> "z".
abnf_alpha('A') --> "A".
abnf_alpha('B') --> "B".
abnf_alpha('C') --> "C".
abnf_alpha('D') --> "D".
abnf_alpha('E') --> "E".
abnf_alpha('F') --> "F".
abnf_alpha('G') --> "G".
abnf_alpha('H') --> "H".
abnf_alpha('I') --> "I".
abnf_alpha('J') --> "J".
abnf_alpha('K') --> "K".
abnf_alpha('L') --> "L".
abnf_alpha('M') --> "M".
abnf_alpha('N') --> "N".
abnf_alpha('O') --> "O".
abnf_alpha('P') --> "P".
abnf_alpha('Q') --> "Q".
abnf_alpha('R') --> "R".
abnf_alpha('S') --> "S".
abnf_alpha('T') --> "T".
abnf_alpha('U') --> "U".
abnf_alpha('V') --> "V".
abnf_alpha('W') --> "W".
abnf_alpha('X') --> "X".
abnf_alpha('Y') --> "Y".
abnf_alpha('Z') --> "Z".
abnf_bit(0) --> "0".
abnf_bit(1) --> "1".
abnf_char(C) --> [C], { dif(C, '\x0000\'), char_type(C, ascii) }. %'
abnf_cr --> "\r".
abnf_crlf --> "\r\n".
abnf_ctl(C) --> [C], { char_type(C, ascii), char_type(C, control) }.
abnf_digit(0) --> "0".
abnf_digit(1) --> "1".
abnf_digit(2) --> "2".
abnf_digit(3) --> "3".
abnf_digit(4) --> "4".
abnf_digit(5) --> "5".
abnf_digit(6) --> "6".
abnf_digit(7) --> "7".
abnf_digit(8) --> "8".
abnf_digit(9) --> "9".
abnf_dquote --> "\"".
abnf_hexdig(Digit) --> abnf_digit(Digit).
abnf_hexdig(10) --> "A".
abnf_hexdig(11) --> "B".
abnf_hexdig(12) --> "C".
abnf_hexdig(13) --> "D".
abnf_hexdig(14) --> "E".
abnf_hexdig(15) --> "F".
abnf_htab --> "\t".
abnf_lf --> "\n".
abnf_lwsp --> "".
abnf_lwsp --> abnf_wsp, abnf_lwsp.
abnf_lwsp --> abnf_clrf, abnf_wsp, abnf_lwsp.
abnf_octet(C) --> [C], char_type(C, octet).
abnf_sp --> " ".
abnf_vchar(C) --> [C], char_type(C, ascii_graphic).
abnf_wsp --> abnf_sp.
abnf_wsp --> abnf_htab.