parse.pl

loading
details
attribute value
description
owner Johannes Waldmann
uploaded 2017-08-17 03:45:07.0
disk size 863 Bytes
downloadable true
type
attribute value
name no_type
processor id 1
description this is the default benchmark type for rejected benchmarks and benchmarks that are not associated with a type.
owning community none
loading contents
%query: parse(i,o).

%TWTYPES :- type parse(list,symbol).

parse(Xs,T) :-
 app(As,[a,s(A,B,C),b|Bs],Xs),
 app(As,[s(a,s(A,B,C),b)|Bs],Ys),
 parse(Ys,T).

parse(Xs,T) :-
 app(As,[a,s(A,B),b|Bs],Xs),
 app(As,[s(a,s(A,B),b)|Bs],Ys),
 parse(Ys,T).

parse(Xs,T) :-
 app(As,[a,b|Bs],Xs),
 app(As,[s(a,b)|Bs],Ys),
 parse(Ys,T).

parse([s(A,B)],s(A,B)).
parse([s(A,B,C)],s(A,B,C)).



%TWTYPES     :- type app(list,list,list).

app([],X,X).
app([X|Xs],Ys,[X|Zs]) :-
	app(Xs,Ys,Zs).



/*TWDESC

 bottom-up parser

*/


/*TWTYPES

list([]).
list([X|Xs]) :-
	symbol(X),
	list(Xs).

symbol(a).
symbol(b).
symbol(s(X,Y)) :- symbol(X), symbol(Y).
symbol(s(X,Y,Z)) :- symbol(X), symbol(Y), symbol(Z).

*/


/*TWDEMO

selected_norms([list,symbol]).

query(parse(b,f,f,f)).
query(app(b,f,f,f,f,f)).
query(app(f,b,f,f,f,f)).
query(app(f,f,f,f,b,f)).
query(app(f,f,f,f,f,b)).

*/

popout

content may be truncated. 'popout' for larger text window.

actions get anonymous link download benchmark