Educational Grammars in List Prolog
The List Prolog Grammar Paradox states that a proposed simple grammar system in List Prolog (LP) is too simple to produce simple grammars assuming it takes no additional inputs, but LP needs what it is currently like, which has educational (expanded, or complex) grammars to produce grammars, which would not work with ISO Prolog if the user expanded them. This points to List Prolog as educationally superior, and unclear whether ISO Prolog can produce its own grammar. How would you check the ISO Prolog grammar - it is better to use List Prolog.
List Prolog:
%% Performs atom (string) to terms (list)
%% base case
[[n,compound212],["","",[v,t],[v,t]]],
%% bottom case
[[n,compound212],[[v,u],[v,u],[v,t],[v,t]]],
[[n,compound21],[[v,t],[v,u]],"->",
[[[n,item],[[v,i]]],
[[n,code],[[n,wrap],[[v,i],[v,itemname1]]],
[[n,append],[[v,t],[v,itemname1],[v,v]]]],
[[n,compound212],[[v,v],[v,u]]]]],
[[n,compound21],[[v,t],[v,u]],"->",
[[[n,item],[[v,i]]],",",
[[n,compound21],[[],[v,compound1name]]],
[[n,code],[[n,wrap],[[v,i],[v,itemname1]]],
[[n,append],[[v,t],[v,itemname1],[v,v]]],
[[n,append],[[v,v],[v,compound1name],[v,u]]]]]],
[[n,item],[[v,t]],"->",
[[[n,number21],["",[v,u]]],[[n,code],
[[n,stringtonumber],[[v,u],[v,t]]]]]],
...
Prolog:
%% Parses spaces
spaces(XXs) -->
[X], {X=32}, spaces(Xs),
{char_code(Ch,X), atom_concat(Ch,Xs,XXs)}, !. %%Space
%% base case
spaces('') --> [].