This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
yap-6.3/Logtalk/examples/dcgs/SCRIPT

78 lines
1.9 KiB
Plaintext
Raw Normal View History

=================================================================
Logtalk - Object oriented extension to Prolog
Release 2.16.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
=================================================================
% DCG rules implementing a simple calculator:
| ?- calculator::parse("1+2-3*4", Result).
Result = -9
yes
% recognizing gramatically correct sentences
| ?- sentence::parse([the, girl, likes, the, boy], Result).
Result = true
yes
| ?- sentence::parse([the, girl, scares, the, boy], Result).
Result = false
yes
% generating parse trees for sentences
| ?- parsetree::parse([the, girl, likes, the, boy], Tree).
Tree = Tree = s(np(d(the), n(girl)), vp(v(likes), np(d(the), n(boy))))
yes
% conversion between compound terms and XML
| ?- xml::convert(word(child, children), word(singular, plural), XML).
XML = '<word><singular>child</singular><plural>children</plural></word>'
yes
| ?- xml::convert(Term, Interpretation, '<word><singular>child</singular><plural>children</plural></word>').
Term = word(child, children)
Interpretation = word(singular, plural)
yes
% parsing URLs
| ?- url::parse("http://www.logtalk.org", Components).
Components = [protocol(http), address([www, logtalk, org]), path([]), file('')]
yes
| ?- url::parse("http://www.logtalk.org/", Components).
Components = [protocol(http), address([www, logtalk, org]), path(['']), file('')]
yes
| ?- url::parse("http://www.logtalk.org/cvs", Components).
Components = [protocol(http), address([www, logtalk, org]), path([cvs]), file('')]
yes
| ?- url::parse("http://www.logtalk.org/cvs.html", Components).
Components = [protocol(http), address([www, logtalk, org]), path([]), file('cvs.html')]
yes
| ?- url::parse("http://193.136.64.5/files/update", Components).
Components = [protocol(http), address([193, 136, 64, 5]), path([files, update]), file('')]
yes