File indexing completed on 2024-05-12 04:02:07

0001 <!DOCTYPE html>
0002 <html><head>
0003 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
0004 <title>highlight.lgt</title>
0005 <meta name="generator" content="KF5::SyntaxHighlighting - Definition (Logtalk) - Theme (Breeze Dark)"/>
0006 </head><body style="background-color:#232629;color:#cfcfc2"><pre>
0007 <span style="color:#7a7c7d">/* </span>
0008 <span style="color:#7a7c7d">   Highlighting test case for Logtalk</span>
0009 
0010 <span style="color:#7a7c7d">   Copied from the Logtalk distribution by the Logtalk copright holder</span>
0011 <span style="color:#7a7c7d">   and contributed using the Apache License 2.0</span>
0012 <span style="color:#7a7c7d">*/</span>
0013 
0014 :-<span style="font-weight:bold"> encoding</span>(<span style="color:#27ae60">Encoding</span>). <span style="color:#7a7c7d">% this is a single-line comment</span>
0015 
0016 <span style="color:#7a7c7d">/*</span>
0017 <span style="color:#7a7c7d">this is</span>
0018 <span style="color:#7a7c7d">a block</span>
0019 <span style="color:#7a7c7d">comment</span>
0020 <span style="color:#7a7c7d">*/</span>
0021 
0022 
0023 :-<span style="font-weight:bold"> if</span>(<span style="color:#27ae60">Goal</span>).
0024     <span style="color:#7a7c7d">% conditional</span>
0025 :-<span style="font-weight:bold"> elif</span>(<span style="color:#27ae60">Goal</span>).
0026     <span style="color:#7a7c7d">% compilation</span>
0027 :-<span style="font-weight:bold"> else</span>.
0028     <span style="color:#7a7c7d">% directives</span>
0029 :-<span style="font-weight:bold"> endif</span>.
0030 
0031 
0032 :-<span style="font-weight:bold"> initialization</span>(<span style="color:#27ae60">Goal</span>).
0033 :-<span style="font-weight:bold"> op</span>(<span style="color:#27ae60">Precedence</span>, <span style="color:#27ae60">Associativity</span>, <span style="color:#27ae60">Operator</span>).
0034 :-<span style="font-weight:bold"> ensure_loaded</span>(<span style="color:#27ae60">File</span>).
0035 :-<span style="font-weight:bold"> include</span>(<span style="color:#27ae60">File</span>).
0036 :-<span style="font-weight:bold"> set_prolog_flag</span>(<span style="color:#27ae60">Flag</span>, <span style="color:#27ae60">Value</span>).
0037 :-<span style="font-weight:bold"> set_logtalk_flag</span>(<span style="color:#27ae60">Flag</span>, <span style="color:#27ae60">Value</span>).
0038 
0039 
0040 :-<span style="font-weight:bold"> object</span>(prototype,
0041     <span style="font-weight:bold">implements</span>(protocol),
0042     <span style="font-weight:bold">imports</span>(category),
0043     <span style="font-weight:bold">extends</span>(parent)).
0044 
0045     :-<span style="font-weight:bold"> info</span>([
0046         version <span style="color:#2980b9">is</span> <span style="color:#f67400">1</span><span style="color:#2980b9">:</span><span style="color:#f67400">47</span><span style="color:#2980b9">:</span><span style="color:#f67400">0</span>,
0047         author <span style="color:#2980b9">is</span> <span style="color:#f44f4f">'Paulo Moura'</span>,
0048         date <span style="color:#2980b9">is</span> <span style="color:#f67400">2019</span><span style="color:#2980b9">-</span><span style="color:#f67400">09</span><span style="color:#2980b9">-</span><span style="color:#f67400">18</span>,
0049         comment <span style="color:#2980b9">is</span> <span style="color:#f44f4f">'Sample prototype for testing syntax coloring.'</span>
0050     ]).
0051 
0052     :-<span style="font-weight:bold"> built_in</span>.
0053     :-<span style="font-weight:bold"> threaded</span>.
0054     :-<span style="font-weight:bold"> dynamic</span>.
0055 
0056     :-<span style="font-weight:bold"> initialization</span>(some_goal(<span style="color:#27ae60">X</span>, <span style="color:#27ae60">Y</span>)).
0057 
0058     :-<span style="font-weight:bold"> uses</span>([
0059         foobar <span style="color:#2980b9">as</span> fb
0060     ]).
0061 
0062     :-<span style="font-weight:bold"> alias</span>(set, [member<span style="color:#2980b9">/</span><span style="color:#f67400">2</span> <span style="color:#2980b9">as</span> set_member<span style="color:#2980b9">/</span><span style="color:#f67400">2</span>]).
0063     :-<span style="font-weight:bold"> alias</span>(words, [singular<span style="color:#2980b9">//</span><span style="color:#f67400">0</span> <span style="color:#2980b9">as</span> peculiar<span style="color:#2980b9">//</span><span style="color:#f67400">0</span>]).
0064 
0065     :-<span style="font-weight:bold"> uses</span>(list, [append<span style="color:#2980b9">/</span><span style="color:#f67400">3</span>, member<span style="color:#2980b9">/</span><span style="color:#f67400">2</span>]).
0066     :-<span style="font-weight:bold"> uses</span>(queues, [new<span style="color:#2980b9">/</span><span style="color:#f67400">1</span> <span style="color:#2980b9">as</span> new_queue<span style="color:#2980b9">/</span><span style="color:#f67400">1</span>]).
0067 
0068     :-<span style="font-weight:bold"> use_module</span>(module).
0069     :-<span style="font-weight:bold"> use_module</span>(module, [append<span style="color:#2980b9">/</span><span style="color:#f67400">3</span>, member<span style="color:#2980b9">/</span><span style="color:#f67400">2</span>]).
0070 
0071     :-<span style="font-weight:bold"> multifile</span>(zzz<span style="color:#2980b9">/</span><span style="color:#f67400">1</span>).
0072     :-<span style="font-weight:bold"> multifile</span>(module<span style="color:#2980b9">:</span>zzz<span style="color:#2980b9">/</span><span style="color:#f67400">1</span>).
0073     :-<span style="font-weight:bold"> multifile</span>(object<span style="color:#2980b9">::</span>zzz<span style="color:#2980b9">/</span><span style="color:#f67400">1</span>).
0074 
0075     :-<span style="font-weight:bold"> coinductive</span>(comember<span style="color:#2980b9">/</span><span style="color:#f67400">1</span>).
0076 
0077     :-<span style="font-weight:bold"> use_module</span>(module, [xxx<span style="color:#2980b9">/</span><span style="color:#f67400">1</span>, yyy<span style="color:#2980b9">/</span><span style="color:#f67400">2</span>, zzz<span style="color:#2980b9">/</span><span style="color:#f67400">3</span>]).
0078     :-<span style="font-weight:bold"> export</span>(bbb<span style="color:#2980b9">/</span><span style="color:#f67400">3</span>).
0079     :-<span style="font-weight:bold"> reexport</span>(cccc<span style="color:#2980b9">/</span><span style="color:#f67400">4</span>).
0080 
0081     :-<span style="font-weight:bold"> public</span>(aaa<span style="color:#2980b9">/</span><span style="color:#f67400">2</span>).
0082     :-<span style="font-weight:bold"> meta_predicate</span>(aaa(<span style="color:#2980b9">::</span>, <span style="color:#2980b9">*</span>)).
0083     :-<span style="font-weight:bold"> discontiguous</span>(aaa<span style="color:#2980b9">/</span><span style="color:#f67400">2</span>).
0084     :-<span style="font-weight:bold"> mode</span>(aaa(<span style="color:#2980b9">+</span>callable, <span style="color:#2980b9">?</span>integer), zero_or_one).
0085     :-<span style="font-weight:bold"> info</span>(position<span style="color:#2980b9">/</span><span style="color:#f67400">2</span>, [
0086         comment <span style="color:#2980b9">is</span> <span style="color:#f44f4f">'Predicate brief description.'</span>,
0087         arguments <span style="color:#2980b9">is</span> [<span style="color:#f44f4f">'Arg1'</span><span style="color:#2980b9">-</span><span style="color:#f44f4f">'Arg1 description'</span>, <span style="color:#f44f4f">'Arg2'</span><span style="color:#2980b9">-</span><span style="color:#f44f4f">'Arg2 description'</span>]
0088     ]).
0089 
0090     :-<span style="font-weight:bold"> public</span>(nt<span style="color:#2980b9">//</span><span style="color:#f67400">2</span>).
0091     :-<span style="font-weight:bold"> meta_non_terminal</span>(nt(<span style="color:#f67400">1</span>, <span style="color:#2980b9">*</span>)).
0092 
0093     :-<span style="font-weight:bold"> protected</span>(bbb<span style="color:#2980b9">/</span><span style="color:#f67400">2</span>).
0094     :-<span style="font-weight:bold"> synchronized</span>(bbb<span style="color:#2980b9">/</span><span style="color:#f67400">2</span>).
0095     :-<span style="font-weight:bold"> mode</span>(bbb(<span style="color:#2980b9">+</span>integer, <span style="color:#2980b9">-</span>float), one).
0096     :-<span style="font-weight:bold"> info</span>(bbb<span style="color:#2980b9">/</span><span style="color:#f67400">2</span>, [
0097         comment <span style="color:#2980b9">is</span> <span style="color:#f44f4f">'Predicate brief description.'</span>,
0098         argnames <span style="color:#2980b9">is</span> [<span style="color:#f44f4f">'Arg1'</span>, <span style="color:#f44f4f">'Arg2'</span>]
0099     ]).
0100 
0101     :-<span style="font-weight:bold"> private</span>(ccc<span style="color:#2980b9">/</span><span style="color:#f67400">2</span>).
0102     :-<span style="font-weight:bold"> dynamic</span>(ccc<span style="color:#2980b9">/</span><span style="color:#f67400">2</span>).
0103     :-<span style="font-weight:bold"> mode</span>(ccc(<span style="color:#2980b9">@</span>atom, <span style="color:#2980b9">?</span>atom, <span style="color:#2980b9">++</span>list, <span style="color:#2980b9">--</span>ground), one_or_more).
0104     :-<span style="font-weight:bold"> info</span>(ccc<span style="color:#2980b9">/</span><span style="color:#f67400">2</span>, [
0105         comment <span style="color:#2980b9">is</span> <span style="color:#f44f4f">'Predicate brief description.'</span>,
0106         argnames <span style="color:#2980b9">is</span> [<span style="color:#f44f4f">'Arg1'</span>, <span style="color:#f44f4f">'Arg2'</span>]
0107     ]).
0108 
0109     enumerating_entities(<span style="color:#27ae60">Object</span>, <span style="color:#27ae60">Protocol</span>, <span style="color:#27ae60">Category</span>) <span style="color:#2980b9">:-</span>
0110         <span style="color:#8e44ad">current_category</span>(<span style="color:#27ae60">Category</span>),
0111         <span style="color:#8e44ad">current_object</span>(<span style="color:#27ae60">Object</span>),
0112         <span style="color:#8e44ad">current_protocol</span>(<span style="color:#27ae60">Protocol</span>).
0113 
0114     enumerating_properties <span style="color:#2980b9">:-</span>
0115         <span style="color:#8e44ad">category_property</span>(<span style="color:#27ae60">Category</span>, <span style="color:#27ae60">Property</span>),
0116         <span style="color:#8e44ad">object_property</span>(<span style="color:#27ae60">Object</span>, <span style="color:#27ae60">Property</span>),
0117         <span style="color:#8e44ad">protocol_property</span>(<span style="color:#27ae60">Protocol</span>, <span style="color:#27ae60">Property</span>).
0118 
0119     creating_entities(<span style="color:#27ae60">Object</span>, <span style="color:#27ae60">Protocol</span>, <span style="color:#27ae60">Category</span>) <span style="color:#2980b9">:-</span>
0120         <span style="color:#8e44ad">create_category</span>(<span style="color:#27ae60">Category</span>, <span style="color:#27ae60">Relations</span>, <span style="color:#27ae60">Directives</span>, <span style="color:#27ae60">Clauses</span>),
0121         <span style="color:#8e44ad">create_object</span>(<span style="color:#27ae60">Object</span>, <span style="color:#27ae60">Relations</span>, <span style="color:#27ae60">Directives</span>, <span style="color:#27ae60">Clauses</span>),
0122         <span style="color:#8e44ad">create_protocol</span>(<span style="color:#27ae60">Protocol</span>, <span style="color:#27ae60">Relations</span>, <span style="color:#27ae60">Directives</span>).
0123 
0124     abolishing_entities(<span style="color:#27ae60">Object</span>, <span style="color:#27ae60">Protocol</span>, <span style="color:#27ae60">Category</span>) <span style="color:#2980b9">:-</span>
0125         <span style="color:#8e44ad">abolish_category</span>(<span style="color:#27ae60">Category</span>),
0126         <span style="color:#8e44ad">abolish_object</span>(<span style="color:#27ae60">Object</span>),
0127         <span style="color:#8e44ad">abolish_protocol</span>(<span style="color:#27ae60">Protocol</span>).
0128 
0129     entity_relations <span style="color:#2980b9">:-</span>
0130         <span style="color:#8e44ad">extends_object</span>(<span style="color:#27ae60">Prototype</span>, <span style="color:#27ae60">Parent</span>, <span style="color:#27ae60">Scope</span>),
0131         <span style="color:#8e44ad">extends_protocol</span>(<span style="color:#27ae60">Protocol1</span>, <span style="color:#27ae60">Protocol2</span>, <span style="color:#27ae60">Scope</span>),
0132         <span style="color:#8e44ad">extends_category</span>(<span style="color:#27ae60">Category1</span>, <span style="color:#27ae60">Category2</span>, <span style="color:#27ae60">Scope</span>),
0133         <span style="color:#8e44ad">implements_protocol</span>(<span style="color:#27ae60">Object</span>, <span style="color:#27ae60">Protocol</span>, <span style="color:#27ae60">Scope</span>),
0134         <span style="color:#8e44ad">imports_category</span>(<span style="color:#27ae60">Object</span>, <span style="color:#27ae60">Category</span>, <span style="color:#27ae60">Scope</span>),
0135         <span style="color:#8e44ad">instantiates_class</span>(<span style="color:#27ae60">Instance</span>, <span style="color:#27ae60">Class</span>, <span style="color:#27ae60">Scope</span>),
0136         <span style="color:#8e44ad">specializes_class</span>(<span style="color:#27ae60">Class</span>, <span style="color:#27ae60">Superclass</span>, <span style="color:#27ae60">Scope</span>),
0137         <span style="color:#8e44ad">complements_object</span>(<span style="color:#27ae60">Category</span>, <span style="color:#27ae60">Object</span>),
0138         <span style="color:#8e44ad">conforms_to_protocol</span>(<span style="color:#27ae60">ObjOrCtg</span>, <span style="color:#27ae60">Protocol</span>, <span style="color:#27ae60">Scope</span>).
0139 
0140     event_handling <span style="color:#2980b9">:-</span>
0141         <span style="color:#8e44ad">abolish_events</span>(<span style="color:#27ae60">Event</span>, <span style="color:#27ae60">Object</span>, <span style="color:#27ae60">Message</span>, <span style="color:#27ae60">Sender</span>, <span style="color:#27ae60">Monitor</span>),
0142         <span style="color:#8e44ad">current_event</span>(<span style="color:#27ae60">Event</span>, <span style="color:#27ae60">Object</span>, <span style="color:#27ae60">Message</span>, <span style="color:#27ae60">Sender</span>, <span style="color:#27ae60">Monitor</span>),
0143         <span style="color:#8e44ad">define_events</span>(<span style="color:#27ae60">Event</span>, <span style="color:#27ae60">Object</span>, <span style="color:#27ae60">Message</span>, <span style="color:#27ae60">Sender</span>, <span style="color:#27ae60">Monitor</span>).
0144 
0145     multi_threading <span style="color:#2980b9">:-</span>
0146         <span style="color:#8e44ad">threaded</span>(<span style="color:#27ae60">Goals</span>),
0147         <span style="color:#8e44ad">threaded_call</span>(<span style="color:#27ae60">Goal</span>),
0148         <span style="color:#8e44ad">threaded_call</span>(<span style="color:#27ae60">Goal</span>, <span style="color:#27ae60">Tag</span>),
0149         <span style="color:#8e44ad">threaded_once</span>(<span style="color:#27ae60">Goal</span>),
0150         <span style="color:#8e44ad">threaded_once</span>(<span style="color:#27ae60">Goal</span>, <span style="color:#27ae60">Tag</span>),
0151         <span style="color:#8e44ad">threaded_ignore</span>(<span style="color:#27ae60">Goal</span>),
0152         <span style="color:#8e44ad">threaded_exit</span>(<span style="color:#27ae60">Goal</span>),
0153         <span style="color:#8e44ad">threaded_exit</span>(<span style="color:#27ae60">Goal</span>, <span style="color:#27ae60">Tag</span>),
0154         <span style="color:#8e44ad">threaded_peek</span>(<span style="color:#27ae60">Goal</span>),
0155         <span style="color:#8e44ad">threaded_peek</span>(<span style="color:#27ae60">Goal</span>, <span style="color:#27ae60">Tag</span>),
0156         <span style="color:#8e44ad">threaded_cancel</span>(<span style="color:#27ae60">Tag</span>),
0157         <span style="color:#8e44ad">threaded_wait</span>(<span style="color:#27ae60">Notification</span>),
0158         <span style="color:#8e44ad">threaded_notify</span>(<span style="color:#27ae60">Notification</span>).
0159 
0160     engines <span style="color:#2980b9">:-</span>
0161         <span style="color:#8e44ad">threaded_engine</span>(<span style="color:#27ae60">Engine</span>),
0162         <span style="color:#8e44ad">threaded_engine_create</span>(<span style="color:#27ae60">AnswerTemplate</span>, <span style="color:#27ae60">Goal</span>, <span style="color:#27ae60">Engine</span>),
0163         <span style="color:#8e44ad">threaded_engine_destroy</span>(<span style="color:#27ae60">Engine</span>),
0164         <span style="color:#8e44ad">threaded_engine_self</span>(<span style="color:#27ae60">Engine</span>),
0165         <span style="color:#8e44ad">threaded_engine_next</span>(<span style="color:#27ae60">Engine</span>, <span style="color:#27ae60">Answer</span>),
0166         <span style="color:#8e44ad">threaded_engine_next_reified</span>(<span style="color:#27ae60">Engine</span>, <span style="color:#27ae60">Answer</span>),
0167         <span style="color:#8e44ad">threaded_engine_yield</span>(<span style="color:#27ae60">Answer</span>),
0168         <span style="color:#8e44ad">threaded_engine_post</span>(<span style="color:#27ae60">Engine</span>, <span style="color:#27ae60">Term</span>),
0169         <span style="color:#8e44ad">threaded_engine_fetch</span>(<span style="color:#27ae60">Term</span>).
0170 
0171     compiling_and_loading <span style="color:#2980b9">:-</span>
0172         <span style="color:#8e44ad">logtalk_compile</span>(<span style="color:#27ae60">File</span>, <span style="color:#27ae60">Options</span>),
0173         <span style="color:#8e44ad">logtalk_load</span>(<span style="color:#27ae60">File</span>, <span style="color:#27ae60">Options</span>),
0174         <span style="color:#8e44ad">logtalk_library_path</span>(<span style="color:#27ae60">Library</span>, <span style="color:#27ae60">Path</span>),
0175         <span style="color:#8e44ad">logtalk_load_context</span>(<span style="color:#27ae60">Key</span>, <span style="color:#27ae60">Value</span>),
0176         <span style="color:#8e44ad">logtalk_make</span>(<span style="color:#27ae60">Action</span>),
0177         <span style="color:#8e44ad">logtalk_make</span>,
0178         <span style="color:#8e44ad">logtalk_make_target_action</span>(<span style="color:#27ae60">Target</span>).
0179 
0180     flags <span style="color:#2980b9">:-</span>
0181         <span style="color:#8e44ad">current_logtalk_flag</span>(<span style="color:#27ae60">Flag</span>, <span style="color:#27ae60">Value</span>),
0182         <span style="color:#8e44ad">set_logtalk_flag</span>(<span style="color:#27ae60">Flag</span>, <span style="color:#27ae60">Value</span>),
0183         <span style="color:#8e44ad">create_logtalk_flag</span>(<span style="color:#27ae60">Flag</span>, <span style="color:#27ae60">Value</span>, <span style="color:#27ae60">Options</span>).
0184 
0185     execution_context_methods <span style="color:#2980b9">:-</span>
0186         <span style="color:#8e44ad">context</span>(<span style="color:#27ae60">Context</span>),
0187         <span style="color:#8e44ad">parameter</span>(<span style="color:#27ae60">N</span>, <span style="color:#27ae60">Parameter</span>),
0188         <span style="color:#8e44ad">self</span>(<span style="color:#27ae60">Self</span>),
0189         <span style="color:#8e44ad">sender</span>(<span style="color:#27ae60">Sender</span>),
0190         <span style="color:#8e44ad">this</span>(<span style="color:#27ae60">This</span>).
0191 
0192     reflection_methods <span style="color:#2980b9">:-</span>
0193         <span style="color:#8e44ad">current_predicate</span>(<span style="color:#27ae60">Predicate</span>),
0194         <span style="color:#8e44ad">predicate_property</span>(<span style="color:#27ae60">Predicate</span>, <span style="color:#27ae60">Property</span>).
0195 
0196     database_methods <span style="color:#2980b9">:-</span>
0197         <span style="color:#8e44ad">abolish</span>(<span style="color:#27ae60">Name</span><span style="color:#2980b9">/</span><span style="color:#27ae60">Arity</span>),
0198         <span style="color:#8e44ad">asserta</span>(<span style="color:#27ae60">Clause</span>),
0199         <span style="color:#8e44ad">assertz</span>(<span style="color:#27ae60">Clause</span>),
0200         <span style="color:#8e44ad">clause</span>(<span style="color:#27ae60">Head</span>, <span style="color:#27ae60">Body</span>),
0201         <span style="color:#8e44ad">retract</span>(<span style="color:#27ae60">Clause</span>),
0202         <span style="color:#8e44ad">retractall</span>(<span style="color:#27ae60">Head</span>).
0203 
0204     exception_methods <span style="color:#2980b9">:-</span>
0205         <span style="color:#8e44ad">catch</span>(<span style="color:#27ae60">Goal</span>, <span style="color:#27ae60">Error</span>, <span style="color:#27ae60">Catcher</span>),
0206         <span style="color:#8e44ad">throw</span>(<span style="color:#27ae60">Error</span>),
0207         <span style="color:#8e44ad">instantiation_error</span>,
0208         <span style="color:#8e44ad">type_error</span>(<span style="color:#27ae60">Type</span>, <span style="color:#27ae60">Culprit</span>),
0209         <span style="color:#8e44ad">domain_error</span>(<span style="color:#27ae60">Domain</span>, <span style="color:#27ae60">Culprit</span>),
0210         <span style="color:#8e44ad">existence_error</span>(<span style="color:#27ae60">Thing</span>, <span style="color:#27ae60">Culprit</span>),
0211         <span style="color:#8e44ad">permission_error</span>(<span style="color:#27ae60">Operation</span>, <span style="color:#27ae60">Permission</span>, <span style="color:#27ae60">Culprit</span>),
0212         <span style="color:#8e44ad">representation_error</span>(<span style="color:#27ae60">Flag</span>),
0213         <span style="color:#8e44ad">evaluation_error</span>(<span style="color:#27ae60">Exception</span>),
0214         <span style="color:#8e44ad">resource_error</span>(<span style="color:#27ae60">Resource</span>),
0215         <span style="color:#8e44ad">syntax_error</span>(<span style="color:#27ae60">Description</span>),
0216         <span style="color:#8e44ad">system_error</span>.
0217 
0218     all_solutions_methods <span style="color:#2980b9">:-</span>
0219         <span style="color:#8e44ad">bagof</span>(<span style="color:#27ae60">Term</span>, <span style="color:#27ae60">Goal</span>, <span style="color:#27ae60">List</span>),
0220         <span style="color:#8e44ad">bagof</span>(<span style="color:#27ae60">Term</span>, <span style="color:#27ae60">Var</span><span style="color:#2980b9">^</span><span style="color:#27ae60">Goal</span>, <span style="color:#27ae60">List</span>),
0221         <span style="color:#8e44ad">findall</span>(<span style="color:#27ae60">Term</span>, <span style="color:#27ae60">Goal</span>, <span style="color:#27ae60">List</span>),
0222         <span style="color:#8e44ad">forall</span>(<span style="color:#27ae60">Generate</span>, <span style="color:#27ae60">Test</span>),
0223         <span style="color:#8e44ad">setof</span>(<span style="color:#27ae60">Term</span>, <span style="color:#27ae60">Goal</span>, <span style="color:#27ae60">List</span>),
0224         <span style="color:#8e44ad">setof</span>(<span style="color:#27ae60">Term</span>, <span style="color:#27ae60">Var1</span><span style="color:#2980b9">^</span><span style="color:#27ae60">Var2</span><span style="color:#2980b9">^</span><span style="color:#27ae60">Goal</span>, <span style="color:#27ae60">List</span>).
0225 
0226     event_handler_methods <span style="color:#2980b9">:-</span>
0227         <span style="color:#8e44ad">before</span>(<span style="color:#27ae60">Object</span>, <span style="color:#27ae60">Message</span>, <span style="color:#27ae60">Sender</span>),
0228         <span style="color:#8e44ad">after</span>(<span style="color:#27ae60">Object</span>, <span style="color:#27ae60">Message</span>, <span style="color:#27ae60">Sender</span>).
0229 
0230     message_forwarding_method <span style="color:#2980b9">:-</span>
0231         <span style="color:#8e44ad">forward</span>(<span style="color:#27ae60">Message</span>).
0232 
0233     dcg_rules_parsing_methods <span style="color:#2980b9">:-</span>
0234         <span style="color:#8e44ad">phrase</span>(<span style="color:#27ae60">NonTerminal</span>, <span style="color:#27ae60">Input</span>, <span style="color:#27ae60">Rest</span>).
0235 
0236     term_expansion_methods <span style="color:#2980b9">:-</span>
0237         <span style="color:#8e44ad">expand_term</span>(<span style="color:#27ae60">Term</span>, <span style="color:#27ae60">Expanded</span>),
0238         <span style="color:#8e44ad">expand_goal</span>(<span style="color:#27ae60">Goal</span>, <span style="color:#27ae60">Expanded</span>),
0239         <span style="color:#8e44ad">term_expansion</span>(<span style="color:#27ae60">Term</span>, <span style="color:#27ae60">Expanded</span>),
0240         <span style="color:#8e44ad">goal_expansion</span>(<span style="color:#27ae60">Goal</span>, <span style="color:#27ae60">Expanded</span>).
0241 
0242     message_sending <span style="color:#2980b9">:-</span>
0243         <span style="color:#27ae60">Object</span><span style="color:#2980b9">::</span><span style="color:#27ae60">Message</span>,
0244         <span style="color:#2980b9">::</span><span style="color:#27ae60">Message</span>,
0245         <span style="color:#2980b9">^^</span><span style="color:#27ae60">Message</span>.
0246 
0247     calling_external_code <span style="color:#2980b9">:-</span>
0248         <span style="color:#2980b9">{</span>goal1, goal2, goal3<span style="color:#2980b9">}</span>.
0249 
0250     context_switching_calls <span style="color:#2980b9">:-</span>
0251         <span style="color:#27ae60">Object</span><span style="color:#2980b9">&lt;&lt;</span><span style="color:#27ae60">Goal</span>.
0252 
0253     lambda_expressions <span style="color:#2980b9">:-</span>
0254         <span style="color:#2980b9">{</span><span style="color:#27ae60">X</span>,<span style="color:#27ae60">Y</span>,<span style="color:#27ae60">Z</span><span style="color:#2980b9">}/</span>[<span style="color:#27ae60">P</span>,<span style="color:#27ae60">Q</span>]<span style="color:#2980b9">>></span><span style="color:#27ae60">Goal</span>.
0255 
0256     explicitly_qualified_module_calls <span style="color:#2980b9">:-</span>
0257         <span style="color:#27ae60">Module</span><span style="color:#2980b9">:</span><span style="color:#27ae60">Goal</span>.
0258 
0259     if_then_else <span style="color:#2980b9">:-</span>
0260         (   <span style="color:#27ae60">If</span> <span style="color:#2980b9">-></span>
0261             <span style="color:#27ae60">Then</span>
0262         <span style="color:#2980b9">;</span>    <span style="color:#27ae60">Else</span>
0263         ).
0264 
0265     numbers <span style="color:#2980b9">:-</span>
0266         <span style="color:#27ae60">X1</span> <span style="color:#2980b9">is</span> <span style="color:#f67400">13</span>, <span style="color:#27ae60">X2</span> <span style="color:#2980b9">is</span> <span style="color:#2980b9">-</span><span style="color:#f67400">13</span>, <span style="color:#27ae60">X3</span> <span style="color:#2980b9">is</span> <span style="color:#2980b9">+</span><span style="color:#f67400">13</span>,
0267         <span style="color:#27ae60">Y1</span> <span style="color:#2980b9">is</span> <span style="color:#f67400">13.13</span>, <span style="color:#27ae60">Y2</span> <span style="color:#2980b9">is</span> <span style="color:#2980b9">-</span><span style="color:#f67400">13.13</span>, <span style="color:#27ae60">Y3</span> <span style="color:#2980b9">is</span> <span style="color:#2980b9">+</span><span style="color:#f67400">13.13</span>,
0268         <span style="color:#27ae60">Z1</span> <span style="color:#2980b9">is</span> <span style="color:#f67400">13.13e-23</span>, <span style="color:#27ae60">Z2</span> <span style="color:#2980b9">is</span> <span style="color:#2980b9">-</span><span style="color:#f67400">13.13e-23</span>, <span style="color:#27ae60">Z3</span> <span style="color:#2980b9">is</span> <span style="color:#2980b9">+</span><span style="color:#f67400">13.13e-23</span>,
0269         <span style="color:#27ae60">C1</span> <span style="color:#2980b9">is</span> <span style="color:#f67400">0'A</span>, <span style="color:#27ae60">C2</span> <span style="color:#2980b9">is</span> <span style="color:#f67400">0''</span>, <span style="color:#27ae60">C3</span> <span style="color:#2980b9">is</span> <span style="color:#f67400">0'"</span>, <span style="color:#27ae60">C4</span> <span style="color:#2980b9">is</span> <span style="color:#f67400">0'%</span>,
0270         <span style="color:#27ae60">C5</span> <span style="color:#2980b9">is</span> <span style="color:#f67400">0'\n</span>, <span style="color:#27ae60">C6</span> <span style="color:#2980b9">is</span> <span style="color:#f67400">0'\\</span>, <span style="color:#27ae60">C7</span> <span style="color:#2980b9">is</span> <span style="color:#f67400">0'\'</span>, <span style="color:#27ae60">C8</span> <span style="color:#2980b9">is</span> <span style="color:#f67400">0'\"</span>, <span style="color:#27ae60">C9</span> <span style="color:#2980b9">is</span> <span style="color:#f67400">0'\`</span>,
0271         <span style="color:#27ae60">B1</span> <span style="color:#2980b9">is</span> <span style="color:#f67400">0b1011101</span>,
0272         <span style="color:#27ae60">O1</span> <span style="color:#2980b9">is</span> <span style="color:#f67400">0o1234560</span>,
0273         <span style="color:#27ae60">H1</span> <span style="color:#2980b9">is</span> <span style="color:#f67400">0x1234567890abcDEF</span>.
0274 
0275     functions <span style="color:#2980b9">:-</span>
0276         <span style="color:#27ae60">A</span> <span style="color:#2980b9">is</span> <span style="color:#8e44ad">atan</span>(<span style="color:#f67400">3.14</span>) <span style="color:#2980b9">+</span> <span style="color:#8e44ad">atan2</span>(<span style="color:#f67400">1</span>, <span style="color:#f67400">0</span>) <span style="color:#2980b9">+</span> <span style="color:#8e44ad">acos</span>(<span style="color:#f67400">0.5</span>) <span style="color:#2980b9">+</span> <span style="color:#8e44ad">asin</span>(<span style="color:#f67400">0.5</span>) <span style="color:#2980b9">+</span> <span style="color:#8e44ad">sin</span>(<span style="color:#f67400">0.77</span>) <span style="color:#2980b9">-</span> <span style="color:#8e44ad">cos</span>(<span style="color:#f67400">123.23</span>) <span style="color:#2980b9">-</span> <span style="color:#8e44ad">tan</span>(<span style="color:#f67400">0.33</span>),
0277         <span style="color:#27ae60">B</span> <span style="color:#2980b9">is</span> <span style="color:#8e44ad">sign</span>(<span style="color:#2980b9">-</span><span style="color:#f67400">12</span>) <span style="color:#2980b9">*</span> <span style="color:#8e44ad">abs</span>(<span style="color:#f67400">35</span><span style="color:#2980b9">/</span><span style="color:#f67400">78</span>),
0278         <span style="color:#27ae60">C</span> <span style="color:#2980b9">is</span> <span style="color:#8e44ad">truncate</span>(<span style="color:#f67400">3.14</span>) <span style="color:#2980b9">+</span> <span style="color:#8e44ad">round</span>(<span style="color:#2980b9">-</span><span style="color:#f67400">7.8</span>) <span style="color:#2980b9">-</span> <span style="color:#8e44ad">ceiling</span>(<span style="color:#f67400">111.88</span>),
0279         <span style="color:#27ae60">D</span> <span style="color:#2980b9">is</span> <span style="color:#8e44ad">exp</span>(<span style="color:#f67400">3.8</span>) <span style="color:#2980b9">-</span> <span style="color:#8e44ad">log</span>(<span style="color:#f67400">123.98</span>) <span style="color:#2980b9">/</span> <span style="color:#8e44ad">sqrt</span>(<span style="color:#f67400">33</span>) <span style="color:#2980b9">*</span> <span style="color:#f67400">23</span> <span style="color:#2980b9">**</span> <span style="color:#f67400">4</span> <span style="color:#2980b9">+</span> <span style="color:#f67400">12345</span><span style="color:#2980b9">^</span><span style="color:#f67400">2</span>,
0280         <span style="color:#27ae60">E</span> <span style="color:#2980b9">is</span> <span style="color:#8e44ad">rem</span>(<span style="color:#f67400">3</span>, <span style="color:#f67400">2</span>) <span style="color:#2980b9">+</span> <span style="color:#8e44ad">mod</span>(<span style="color:#f67400">5</span>, <span style="color:#f67400">3</span>) <span style="color:#2980b9">-</span> <span style="color:#8e44ad">div</span>(<span style="color:#f67400">8</span>, <span style="color:#f67400">4</span>) <span style="color:#2980b9">*</span> <span style="color:#f67400">2</span> <span style="color:#2980b9">rem</span> <span style="color:#f67400">2</span> <span style="color:#2980b9">//</span> <span style="color:#f67400">5</span> <span style="color:#2980b9">mod</span> <span style="color:#f67400">3</span> <span style="color:#2980b9">-</span> <span style="color:#f67400">8</span> <span style="color:#2980b9">div</span> <span style="color:#f67400">4</span> <span style="color:#2980b9">+</span> <span style="color:#2980b9">pi</span> <span style="color:#2980b9">*</span> <span style="color:#2980b9">e</span>,
0281         <span style="color:#27ae60">F</span> <span style="color:#2980b9">is</span> <span style="color:#8e44ad">float_fractional_part</span>(<span style="color:#f67400">3.14</span>) <span style="color:#2980b9">+</span> <span style="color:#8e44ad">float_integer_part</span>(<span style="color:#f67400">3.14</span>),
0282         <span style="color:#27ae60">G</span> <span style="color:#2980b9">is</span> <span style="color:#8e44ad">float</span>(<span style="color:#f67400">33</span>) <span style="color:#2980b9">+</span> <span style="color:#8e44ad">floor</span>(<span style="color:#f67400">99.99</span>),
0283         <span style="color:#27ae60">I</span> <span style="color:#2980b9">is</span> <span style="color:#8e44ad">min</span>(<span style="color:#f67400">3</span>,<span style="color:#f67400">4</span>) <span style="color:#2980b9">+</span> <span style="color:#8e44ad">max</span>(<span style="color:#f67400">4</span>,<span style="color:#f67400">5</span>).
0284 
0285     bitwise <span style="color:#2980b9">:-</span>
0286         <span style="color:#27ae60">A</span> <span style="color:#2980b9">is</span> <span style="color:#f67400">16</span> <span style="color:#2980b9">>></span> <span style="color:#f67400">2</span>,
0287         <span style="color:#27ae60">B</span> <span style="color:#2980b9">is</span> <span style="color:#f67400">16</span> <span style="color:#2980b9">&lt;&lt;</span> <span style="color:#f67400">2</span>,
0288         <span style="color:#27ae60">C</span> <span style="color:#2980b9">is</span> <span style="color:#f67400">10</span> <span style="color:#2980b9">/\</span> <span style="color:#f67400">12</span>,
0289         <span style="color:#27ae60">D</span> <span style="color:#2980b9">is</span> <span style="color:#f67400">10</span> <span style="color:#2980b9">\/</span> <span style="color:#f67400">12</span>,
0290         <span style="color:#27ae60">E</span> <span style="color:#2980b9">is</span> \ <span style="color:#f67400">10</span>,
0291         <span style="color:#27ae60">F</span> <span style="color:#2980b9">is</span> <span style="color:#8e44ad">xor</span>(<span style="color:#f67400">13</span>, <span style="color:#f67400">7</span>).
0292 
0293     term_unification <span style="color:#2980b9">:-</span>
0294         <span style="color:#27ae60">Term1</span> <span style="color:#2980b9">=</span> <span style="color:#27ae60">Term2</span>,
0295         <span style="color:#27ae60">Term1</span> <span style="color:#2980b9">\=</span> <span style="color:#27ae60">Term2</span>,
0296         <span style="color:#8e44ad">unify_with_occurs_check</span>(<span style="color:#27ae60">Term1</span>, <span style="color:#27ae60">Term2</span>),
0297         <span style="color:#8e44ad">subsumes_term</span>(<span style="color:#27ae60">General</span>, <span style="color:#27ae60">Specific</span>).
0298 
0299     term_testing <span style="color:#2980b9">:-</span>
0300         <span style="color:#8e44ad">atom</span>(<span style="color:#27ae60">Atom</span>),
0301         <span style="color:#8e44ad">atomic</span>(<span style="color:#27ae60">Atomic</span>),
0302         <span style="color:#8e44ad">integer</span>(<span style="color:#27ae60">Integer</span>),
0303         <span style="color:#8e44ad">float</span>(<span style="color:#27ae60">Float</span>),
0304         <span style="color:#8e44ad">callable</span>(<span style="color:#27ae60">Term</span>),
0305         <span style="color:#8e44ad">compound</span>(<span style="color:#27ae60">Term</span>),
0306         <span style="color:#8e44ad">nonvar</span>(<span style="color:#27ae60">Term</span>),
0307         <span style="color:#8e44ad">var</span>(<span style="color:#27ae60">Term</span>),
0308         <span style="color:#8e44ad">number</span>(<span style="color:#27ae60">Number</span>),
0309         <span style="color:#8e44ad">ground</span>(<span style="color:#27ae60">Term</span>),
0310         <span style="color:#8e44ad">acyclic_term</span>(<span style="color:#27ae60">Term</span>).
0311 
0312     term_comparison <span style="color:#2980b9">:-</span>
0313         <span style="color:#8e44ad">compare</span>(<span style="color:#27ae60">Order</span>, <span style="color:#27ae60">Term1</span>, <span style="color:#27ae60">Term2</span>),
0314         <span style="color:#27ae60">Term1</span> <span style="color:#2980b9">==</span> <span style="color:#27ae60">Term2</span>,
0315         <span style="color:#27ae60">Term1</span> <span style="color:#2980b9">\==</span> <span style="color:#27ae60">Term2</span>,
0316         <span style="color:#27ae60">Term1</span> <span style="color:#2980b9">@&lt;</span> <span style="color:#27ae60">Term2</span>,
0317         <span style="color:#27ae60">Term1</span> <span style="color:#2980b9">@=&lt;</span> <span style="color:#27ae60">Term2</span>,
0318         <span style="color:#27ae60">Term1</span> <span style="color:#2980b9">@>=</span> <span style="color:#27ae60">Term2</span>,
0319         <span style="color:#27ae60">Term1</span> <span style="color:#2980b9">@></span> <span style="color:#27ae60">Term2</span>.
0320 
0321     term_creation_and_decomposition <span style="color:#2980b9">:-</span>
0322         <span style="color:#8e44ad">functor</span>(<span style="color:#27ae60">Term</span>, <span style="color:#27ae60">Name</span>, <span style="color:#27ae60">Arity</span>),
0323         <span style="color:#8e44ad">arg</span>(<span style="color:#27ae60">N</span>, <span style="color:#27ae60">Term</span>, <span style="color:#27ae60">Arg</span>),
0324         <span style="color:#27ae60">Term</span> <span style="color:#2980b9">=..</span> [<span style="color:#27ae60">Functor</span>| <span style="color:#27ae60">Args</span>],
0325         <span style="color:#8e44ad">copy_term</span>(<span style="color:#27ae60">Term</span>, <span style="color:#27ae60">Copy</span>),
0326         <span style="color:#8e44ad">numbervars</span>(<span style="color:#27ae60">Term</span>, <span style="color:#27ae60">Start</span>, <span style="color:#27ae60">End</span>),
0327         <span style="color:#8e44ad">term_variables</span>(<span style="color:#27ae60">Term</span>, <span style="color:#27ae60">Variables</span>).
0328 
0329     arithmetic_evaluation <span style="color:#2980b9">:-</span>
0330         <span style="color:#27ae60">X</span> <span style="color:#2980b9">is</span> <span style="color:#27ae60">Expression</span>.
0331 
0332     arithmetic_comparison <span style="color:#2980b9">:-</span>
0333         <span style="color:#27ae60">Exp1</span> <span style="color:#2980b9">=:=</span> <span style="color:#27ae60">Exp2</span>,
0334         <span style="color:#27ae60">Exp1</span> <span style="color:#2980b9">=\=</span> <span style="color:#27ae60">Exp2</span>,
0335         <span style="color:#27ae60">Exp1</span> <span style="color:#2980b9">&lt;</span> <span style="color:#27ae60">Exp2</span>,
0336         <span style="color:#27ae60">Exp1</span> <span style="color:#2980b9">=&lt;</span> <span style="color:#27ae60">Exp2</span>,
0337         <span style="color:#27ae60">Exp1</span> <span style="color:#2980b9">></span> <span style="color:#27ae60">Exp2</span>,
0338         <span style="color:#27ae60">Exp1</span> <span style="color:#2980b9">>=</span> <span style="color:#27ae60">Exp2</span>.
0339 
0340     stream_selection_and_control <span style="color:#2980b9">:-</span>
0341         <span style="color:#8e44ad">current_input</span>(<span style="color:#27ae60">Stream</span>),
0342         <span style="color:#8e44ad">current_output</span>(<span style="color:#27ae60">Stream</span>),
0343         <span style="color:#8e44ad">set_input</span>(<span style="color:#27ae60">Stream</span>),
0344         <span style="color:#8e44ad">set_output</span>(<span style="color:#27ae60">Stream</span>),
0345         <span style="color:#8e44ad">open</span>(<span style="color:#27ae60">Source</span>, <span style="color:#27ae60">Mode</span>, <span style="color:#27ae60">Stream</span>, <span style="color:#27ae60">Options</span>),
0346         <span style="color:#8e44ad">close</span>(<span style="color:#27ae60">Stream</span>),
0347         <span style="color:#8e44ad">flush_output</span>(<span style="color:#27ae60">Stream</span>),
0348         <span style="color:#8e44ad">stream_property</span>(<span style="color:#27ae60">Stream</span>, <span style="color:#27ae60">Property</span>),
0349         <span style="color:#8e44ad">at_end_of_stream</span>(<span style="color:#27ae60">Stream</span>),
0350         <span style="color:#8e44ad">set_stream_position</span>(<span style="color:#27ae60">Stream</span>, <span style="color:#27ae60">Position</span>),
0351         <span style="color:#8e44ad">flush_output</span>,
0352         <span style="color:#8e44ad">at_end_of_stream</span>.
0353 
0354     character_input_output <span style="color:#2980b9">:-</span>
0355         <span style="color:#8e44ad">get_char</span>(<span style="color:#27ae60">Char</span>),
0356         <span style="color:#8e44ad">get_code</span>(<span style="color:#27ae60">Code</span>),
0357         <span style="color:#8e44ad">peek_char</span>(<span style="color:#27ae60">Char</span>),
0358         <span style="color:#8e44ad">peek_code</span>(<span style="color:#27ae60">Code</span>),
0359         <span style="color:#8e44ad">put_char</span>(<span style="color:#27ae60">Char</span>),
0360         <span style="color:#8e44ad">put_code</span>(<span style="color:#27ae60">Code</span>),
0361         <span style="color:#8e44ad">nl</span>(<span style="color:#27ae60">Stream</span>),
0362         <span style="color:#8e44ad">nl</span>.
0363 
0364     byte_input_output <span style="color:#2980b9">:-</span>
0365         <span style="color:#8e44ad">get_byte</span>(<span style="color:#27ae60">Byte</span>),
0366         <span style="color:#8e44ad">peek_byte</span>(<span style="color:#27ae60">Byte</span>),
0367         <span style="color:#8e44ad">put_byte</span>(<span style="color:#27ae60">Byte</span>).
0368 
0369     term_input_output <span style="color:#2980b9">:-</span>
0370         <span style="color:#8e44ad">read</span>(<span style="color:#27ae60">Term</span>),
0371         <span style="color:#8e44ad">read_term</span>(<span style="color:#27ae60">Stream</span>, <span style="color:#27ae60">Term</span>, <span style="color:#27ae60">Options</span>),
0372         <span style="color:#8e44ad">write</span>(<span style="color:#27ae60">Term</span>),
0373         <span style="color:#8e44ad">write</span>(<span style="color:#27ae60">Term</span>),
0374         <span style="color:#8e44ad">write_canonical</span>(<span style="color:#27ae60">Term</span>),
0375         <span style="color:#8e44ad">write_term</span>(<span style="color:#27ae60">Stream</span>, <span style="color:#27ae60">Term</span>, <span style="color:#27ae60">Options</span>),
0376         <span style="color:#8e44ad">current_op</span>(<span style="color:#27ae60">Precedence</span>, <span style="color:#27ae60">Associativity</span>, <span style="color:#27ae60">Operator</span>),
0377         <span style="color:#8e44ad">op</span>(<span style="color:#27ae60">Precedence</span>, <span style="color:#27ae60">Associativity</span>, <span style="color:#27ae60">Operator</span>),
0378         <span style="color:#8e44ad">current_char_conversion</span>(<span style="color:#27ae60">InChar</span>, <span style="color:#27ae60">OutChar</span>),
0379         <span style="color:#8e44ad">char_conversion</span>(<span style="color:#27ae60">InChar</span>, <span style="color:#27ae60">OutChar</span>).
0380 
0381     logic_and_control <span style="color:#2980b9">:-</span>
0382         <span style="color:#2980b9">\+</span> <span style="color:#27ae60">Goal</span>,
0383         <span style="color:#8e44ad">call</span>(<span style="color:#27ae60">Goal</span>),
0384         <span style="color:#8e44ad">once</span>(<span style="color:#27ae60">Goal</span>),
0385         <span style="color:#8e44ad">ignore</span>(<span style="color:#27ae60">Goal</span>),
0386         <span style="color:#8e44ad">true</span>,
0387         <span style="color:#8e44ad">fail</span>,
0388         <span style="color:#8e44ad">false</span>,
0389         <span style="color:#8e44ad">repeat</span>,
0390         <span style="color:#2980b9">!</span>.
0391 
0392     atomic_term_processing <span style="color:#2980b9">:-</span>
0393         <span style="color:#8e44ad">atom_length</span>(<span style="color:#27ae60">Atom</span>, <span style="color:#27ae60">Length</span>),
0394         <span style="color:#8e44ad">atom_chars</span>(<span style="color:#27ae60">Atom</span>, <span style="color:#27ae60">Chars</span>),
0395         <span style="color:#8e44ad">atom_codes</span>(<span style="color:#27ae60">Atom</span>, <span style="color:#27ae60">Codes</span>),
0396         <span style="color:#8e44ad">atom_concat</span>(<span style="color:#27ae60">Atom1</span>, <span style="color:#27ae60">Atom2</span>, <span style="color:#27ae60">Atom</span>),
0397         <span style="color:#8e44ad">sub_atom</span>(<span style="color:#27ae60">Atom</span>, <span style="color:#27ae60">Before</span>, <span style="color:#27ae60">Length</span>, <span style="color:#27ae60">After</span>, <span style="color:#27ae60">SubAtom</span>),
0398         <span style="color:#8e44ad">char_code</span>(<span style="color:#27ae60">Char</span>, <span style="color:#27ae60">Code</span>),
0399         <span style="color:#8e44ad">number_chars</span>(<span style="color:#27ae60">Number</span>, <span style="color:#27ae60">Chars</span>),
0400         <span style="color:#8e44ad">number_codes</span>(<span style="color:#27ae60">Number</span>, <span style="color:#27ae60">Codes</span>).
0401 
0402     implementation_defined_hooks <span style="color:#2980b9">:-</span>
0403         <span style="color:#8e44ad">current_prolog_flag</span>(<span style="color:#27ae60">Flag</span>, <span style="color:#27ae60">Value</span>),
0404         <span style="color:#8e44ad">set_prolog_flag</span>(<span style="color:#27ae60">Flag</span>, <span style="color:#27ae60">Value</span>),
0405         <span style="color:#8e44ad">halt</span>(<span style="color:#27ae60">ExitCode</span>),
0406         <span style="color:#8e44ad">halt</span>.
0407 
0408     sorting <span style="color:#2980b9">:-</span>
0409         <span style="color:#8e44ad">keysort</span>(<span style="color:#27ae60">List</span>, <span style="color:#27ae60">Sorted</span>),
0410         <span style="color:#8e44ad">sort</span>(<span style="color:#27ae60">List</span>, <span style="color:#27ae60">Sorted</span>).
0411 
0412     <span style="color:#8e44ad">number</span>(<span style="color:#27ae60">C</span>) <span style="color:#2980b9">--></span> <span style="color:#f44f4f">"+"</span>, <span style="color:#8e44ad">number</span>(<span style="color:#27ae60">C</span>).
0413     <span style="color:#8e44ad">number</span>(<span style="color:#27ae60">C</span>) <span style="color:#2980b9">--></span> <span style="color:#f44f4f">"-"</span>, <span style="color:#8e44ad">number</span>(<span style="color:#27ae60">X</span>), <span style="color:#2980b9">{</span><span style="color:#27ae60">C</span> <span style="color:#2980b9">is</span> <span style="color:#2980b9">-</span><span style="color:#27ae60">X</span><span style="color:#2980b9">}</span>.
0414     <span style="color:#8e44ad">number</span>(<span style="color:#27ae60">X</span>) <span style="color:#2980b9">--></span> [<span style="color:#27ae60">C</span>], <span style="color:#2980b9">{</span><span style="color:#f67400">0'0</span> <span style="color:#2980b9">=&lt;</span> <span style="color:#27ae60">C</span>, <span style="color:#27ae60">C</span> <span style="color:#2980b9">=&lt;</span> <span style="color:#f67400">0'9</span>, <span style="color:#27ae60">X</span> <span style="color:#2980b9">is</span> <span style="color:#27ae60">C</span> <span style="color:#2980b9">-</span> <span style="color:#f67400">0'0</span><span style="color:#2980b9">}</span>.
0415 
0416     escape_sequences <span style="color:#2980b9">:-</span>
0417         <span style="color:#8e44ad">write</span>(<span style="color:#f44f4f">'Quoted atom with a quote ('') inside.'</span>),
0418         <span style="color:#8e44ad">write</span>(<span style="color:#f44f4f">'Quoted atom with a quote (</span><span style="color:#3daee9">\'</span><span style="color:#f44f4f">) inside using a control escape sequence.'</span>),
0419         <span style="color:#8e44ad">write</span>(<span style="color:#f44f4f">'Quoted atom with a backslash (</span><span style="color:#3daee9">\\</span><span style="color:#f44f4f">) inside.'</span>),
0420         <span style="color:#8e44ad">write</span>(<span style="color:#f44f4f">'Quoted atom with control escape sequences: </span><span style="color:#3daee9">\a</span><span style="color:#f44f4f"> </span><span style="color:#3daee9">\b</span><span style="color:#f44f4f"> </span><span style="color:#3daee9">\r</span><span style="color:#f44f4f"> </span><span style="color:#3daee9">\f</span><span style="color:#f44f4f"> </span><span style="color:#3daee9">\t</span><span style="color:#f44f4f"> </span><span style="color:#3daee9">\n</span><span style="color:#f44f4f"> </span><span style="color:#3daee9">\v</span><span style="color:#f44f4f">'</span>),
0421         <span style="color:#8e44ad">write</span>(<span style="color:#f44f4f">'Quoted atom with an octal escape sequence: </span><span style="color:#3daee9">\123\</span><span style="color:#f44f4f">.'</span>),
0422         <span style="color:#8e44ad">write</span>(<span style="color:#f44f4f">'Quoted atom with an hexadecimal escape sequence: </span><span style="color:#3daee9">\x123f\</span><span style="color:#f44f4f">.'</span>).
0423 
0424     <span style="color:#7a7c7d">% nothing in the following predicate definition should be highlighted</span>
0425     sort <span style="color:#2980b9">:-</span>
0426         forall,
0427         object,
0428         write,
0429         number.
0430 
0431 :-<span style="font-weight:bold"> end_object</span>.
0432 
0433 
0434 :-<span style="font-weight:bold"> object</span>(class,
0435     <span style="font-weight:bold">implements</span>(protected<span style="color:#2980b9">::</span>protocol),
0436     <span style="font-weight:bold">imports</span>(private<span style="color:#2980b9">::</span>category),
0437     <span style="font-weight:bold">instantiates</span>(metaclass),
0438     <span style="font-weight:bold">specializes</span>(superclass)).
0439 
0440 :-<span style="font-weight:bold"> end_object</span>.
0441 
0442 
0443 :-<span style="font-weight:bold"> object</span>(parametric(<span style="color:#27ae60">Parameter</span>, <span style="color:#f44f4f">"String"</span>, <span style="color:#f67400">33.78</span>),
0444     <span style="font-weight:bold">implements</span>(protocol),
0445     <span style="font-weight:bold">imports</span>(category),
0446     <span style="font-weight:bold">extends</span>(parent(<span style="color:#27ae60">Parameter</span>))).
0447 
0448 :-<span style="font-weight:bold"> end_object</span>.
0449 
0450 
0451 :-<span style="font-weight:bold"> category</span>(category,
0452     <span style="font-weight:bold">implements</span>(protocol),
0453     <span style="font-weight:bold">extends</span>(other_category)).
0454 
0455 :-<span style="font-weight:bold"> end_category</span>.
0456 
0457 
0458 :-<span style="font-weight:bold"> protocol</span>(extended,
0459     <span style="font-weight:bold">extends</span>(minimal)).
0460 
0461 :-<span style="font-weight:bold"> end_protocol</span>.
0462 
0463 
0464 :-<span style="font-weight:bold"> module</span>(module, [foo<span style="color:#2980b9">/</span><span style="color:#f67400">1</span>, bar<span style="color:#2980b9">/</span><span style="color:#f67400">2</span>]).
0465 
0466 :-<span style="font-weight:bold"> use_module</span>(library).
0467 :-<span style="font-weight:bold"> use_module</span>(library, [baz<span style="color:#2980b9">/</span><span style="color:#f67400">3</span>]).
0468 
0469 :-<span style="font-weight:bold"> reexport</span>(library).
0470 :-<span style="font-weight:bold"> reexport</span>(library, [qux<span style="color:#2980b9">/</span><span style="color:#f67400">4</span>]).
0471 
0472 :-<span style="font-weight:bold"> export</span>(quux<span style="color:#2980b9">/</span><span style="color:#f67400">5</span>).
0473 </pre></body></html>