|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345 |
- <?php
- /*************************************************************************************
- * logtalk.php
- * -----------
- *
- * Author: Paulo Moura (pmoura@logtalk.org)
- * Copyright: (c) 2009-2011 Paulo Moura (http://logtalk.org/)
- * Release Version: 1.0.8.11
- * Date Started: 2009/10/24
- *
- * Logtalk language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2011/01/18 (1.1.4)
- * - Added syntax coloring of ignore/1
- * 2010/11/28 (1.1.3)
- * - Added syntax coloring of conforms_to_protocol/2-3
- * 2010/09/14 (1.1.2)
- * - Added syntax coloring of coinductive/1
- * 2010/06/23 (1.1.1)
- * - Added syntax coloring of e/0 and pi/0
- * - Added syntax coloring of ground/1, numbervars/3, keysort/2, and sort/2
- * 2010/05/15 (1.1.0)
- * - Added syntax coloring of callable/1 and compare/3
- * 2009/10/28 (1.0.0)
- * - First Release
- *
- *************************************************************************************
- *
- * This file is part of GeSHi.
- *
- * GeSHi is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * GeSHi is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with GeSHi; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- ************************************************************************************/
-
- $language_data = array(
- 'LANG_NAME' => 'Logtalk',
- 'COMMENT_SINGLE' => array(1 => '%'),
- 'COMMENT_MULTI' => array('/*' => '*/'),
- 'COMMENT_REGEXP' => array(2 => "/0'./sim"),
- 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
- 'QUOTEMARKS' => array("'"),
- 'HARDQUOTE' => array('"', '"'),
- 'HARDESCAPE' => array(),
- 'ESCAPE_CHAR' => '',
- 'ESCAPE_REGEXP' => array(
- //Simple Single Char Escapes
- 1 => "#\\\\[\\\\abfnrtv\'\"?\n]#i",
- //Hexadecimal Char Specs
- 2 => "#\\\\x[\da-fA-F]+\\\\#",
- //Octal Char Specs
- 3 => "#\\\\[0-7]+\\\\#"
- ),
- 'NUMBERS' =>
- GESHI_NUMBER_INT_BASIC |
- GESHI_NUMBER_BIN_PREFIX_0B |
- GESHI_NUMBER_OCT_PREFIX_0O |
- GESHI_NUMBER_HEX_PREFIX |
- GESHI_NUMBER_FLT_NONSCI |
- GESHI_NUMBER_FLT_SCI_ZERO,
- 'KEYWORDS' => array(
- // Directives (with arguments)
- 1 => array(
- // file directives
- 'encoding', 'ensure_loaded',
- // flag directives
- 'set_logtalk_flag', 'set_prolog_flag',
- // entity opening directives
- 'category', 'object', 'protocol',
- // predicate scope directives
- 'private', 'protected', 'public',
- // conditional compilation directives
- 'elif', 'if',
- // entity directives
- 'calls', 'initialization', 'op', 'uses',
- // predicate directives
- 'alias', 'coinductive', 'discontiguous', 'dynamic', 'mode', 'info', 'meta_predicate', 'multifile', 'synchronized',
- // module directives
- 'export', 'module', 'reexport', 'use_module'
- ),
- // Directives (no arguments)
- 2 => array(
- // entity directives
- 'dynamic',
- // multi-threading directives
- 'synchronized', 'threaded',
- // entity closing directives
- 'end_category', 'end_object', 'end_protocol',
- // conditional compilation directives
- 'else', 'endif'
- ),
- // Entity relations
- 3 => array(
- 'complements', 'extends', 'imports', 'implements','instantiates', 'specializes'
- ),
- // Built-in predicates (with arguments)
- 4 => array(
- // event handlers
- 'after', 'before',
- // execution-context methods
- 'parameter', 'self', 'sender', 'this',
- // predicate reflection
- 'current_predicate', 'predicate_property',
- // DCGs and term expansion
- 'expand_goal', 'expand_term', 'goal_expansion', 'phrase', 'term_expansion',
- // entity
- 'abolish_category', 'abolish_object', 'abolish_protocol',
- 'create_category', 'create_object', 'create_protocol',
- 'current_category', 'current_object', 'current_protocol',
- 'category_property', 'object_property', 'protocol_property',
- // entity relations
- 'complements_object', 'conforms_to_protocol',
- 'extends_category', 'extends_object', 'extends_protocol',
- 'implements_protocol', 'imports_category',
- 'instantiates_class', 'specializes_class',
- // events
- 'abolish_events', 'current_event', 'define_events',
- // flags
- 'current_logtalk_flag', 'set_logtalk_flag',
- 'current_prolog_flag', 'set_prolog_flag',
- // compiling, loading, and library path
- 'logtalk_compile', 'logtalk_library_path', 'logtalk_load',
- // database
- 'abolish', 'asserta', 'assertz', 'clause', 'retract', 'retractall',
- // control
- 'call', 'catch', 'ignore', 'once', 'throw',
- // all solutions predicates
- 'bagof', 'findall', 'forall', 'setof',
- // multi-threading meta-predicates
- 'threaded',
- 'threaded_call', 'threaded_once', 'threaded_ignore', 'threaded_exit', 'threaded_peek',
- 'threaded_wait', 'threaded_notify',
- // term unification
- 'unify_with_occurs_check',
- // atomic term processing
- 'atom_chars', 'atom_codes', 'atom_concat', 'atom_length',
- 'number_chars', 'number_codes',
- 'char_code',
- // term creation and decomposition
- 'arg', 'copy_term', 'functor', 'numbervars',
- // term testing
- 'atom', 'atomic', 'callable', 'compound', 'float', 'ground', 'integer', 'nonvar', 'number', 'sub_atom', 'var',
- // term comparison
- 'compare',
- // stream selection and control
- 'current_input', 'current_output', 'set_input', 'set_output',
- 'open', 'close', 'flush_output', 'stream_property',
- 'at_end_of_stream', 'set_stream_position',
- // character and byte input/output predicates
- 'get_byte', 'get_char', 'get_code',
- 'peek_byte', 'peek_char', 'peek_code',
- 'put_byte', 'put_char', 'put_code',
- 'nl',
- // term input/output predicates
- 'current_op', 'op',
- 'write', 'writeq', 'write_canonical', 'write_term',
- 'read', 'read_term',
- 'char_conversion', 'current_char_conversion',
- // hooks
- 'halt',
- // sorting
- 'keysort', 'sort'
- ),
- // Built-in predicates (no arguments)
- 5 => array(
- // control
- 'fail', 'repeat', 'true',
- // character and byte input/output predicates
- 'nl',
- // implementation defined hooks functions
- 'halt',
- // arithemtic evaluation
- 'is',
- // stream selection and control
- 'at_end_of_stream', 'flush_output'
- ),
- // Evaluable functors (with arguments)
- 6 => array(
- 'float_integer_part', 'float_fractional_part',
- 'rem', 'mod', 'abs', 'sign', 'floor', 'truncate', 'round', 'ceiling',
- 'cos', 'atan', 'exp', 'log', 'sin', 'sqrt'
- ),
- // Evaluable functors (no arguments)
- 7 => array(
- 'e', 'pi', 'mod', 'rem'
- ),
- ),
- 'SYMBOLS' => array(
- 0 => array(
- // external call
- '{', '}'
- ),
- 1 => array(
- // arithemtic comparison
- '=:=', '=\=', '<', '=<', '>=', '>',
- // term comparison
- '<<', '>>', '/\\', '\\/', '\\',
- // bitwise functors
- '==', '\==', '@<', '@=<', '@>=', '@>',
- // evaluable functors
- '+', '-', '*', '/', '**',
- // logic and control
- '!', '\\+', ';',
- // message sending operators
- '::', '^^', ':',
- // grammar rule and conditional functors
- '-->', '->',
- // mode operators
- '@', '?',
- // term to list predicate
- '=..',
- // unification
- '=', '\\='
- ),
- 2 => array(
- // clause and directive functors
- ':-'
- )
- ),
- 'CASE_SENSITIVE' => array(
- GESHI_COMMENTS => false,
- 1 => true,
- 2 => true,
- 3 => true,
- 4 => true,
- 5 => true,
- 6 => true,
- 7 => true
- ),
- 'STYLES' => array(
- 'KEYWORDS' => array(
- 1 => 'color: #2e4dc9;',
- 2 => 'color: #2e4dc9;',
- 3 => 'color: #2e4dc9;',
- 4 => 'color: #9d4f37;',
- 5 => 'color: #9d4f37;',
- 6 => 'color: #9d4f37;',
- 7 => 'color: #9d4f37;'
- ),
- 'NUMBERS' => array(
- 0 => 'color: #430000;'
- ),
- 'COMMENTS' => array(
- 1 => 'color: #60a0b0; font-style: italic;',
- 2 => 'color: #430000;',
- 'MULTI' => 'color: #60a0b0; font-style: italic;'
- ),
- 'ESCAPE_CHAR' => array(
- 0 => 'color: #9f0000; font-weight: bold;',
- 1 => 'color: #9f0000; font-weight: bold;',
- 2 => 'color: #9f0000; font-weight: bold;',
- 3 => 'color: #9f0000; font-weight: bold;',
- 'HARD' => '',
- ),
- 'SYMBOLS' => array(
- 0 => 'color: #666666;font-weight: bold;',
- 1 => 'color: #666666;font-weight: bold;',
- 2 => 'color: #000000;'
- ),
- 'BRACKETS' => array(
- 0 => 'color: #000000;'
- ),
- 'STRINGS' => array(
- 0 => 'color: #9f0000;',
- 'HARD' => 'color: #9f0000;'
- ),
- 'METHODS' => array(
- ),
- 'REGEXPS' => array(
- 0 => 'color: #848484;'
- ),
- 'SCRIPT' => array()
- ),
- 'URLS' => array(
- 1 => '',
- 2 => '',
- 3 => '',
- 4 => '',
- 5 => '',
- 6 => '',
- 7 => ''
- ),
- 'OOLANG' => false,
- 'OBJECT_SPLITTERS' => array(
- 1 => '::'
- ),
- 'REGEXPS' => array(
- // variables
- 0 => '\b(?!(?:PIPE|SEMI|REG3XP\d*)[^a-zA-Z0-9_])[A-Z_][a-zA-Z0-9_]*(?![a-zA-Z0-9_])'
- ),
- 'STRICT_MODE_APPLIES' => GESHI_NEVER,
- 'SCRIPT_DELIMITERS' => array(),
- 'HIGHLIGHT_STRICT_BLOCK' => array(),
- 'TAB_WIDTH' => 4,
- 'PARSER_CONTROL' => array(
- 'ENABLE_FLAGS' => array(
- 'BRACKETS' => GESHI_NEVER
- ),
- 'KEYWORDS' => array(
- 1 => array(
- 'DISALLOWED_BEFORE' => '(?<=:-\s)',
- 'DISALLOWED_AFTER' => '(?=\()'
- ),
- 2 => array(
- 'DISALLOWED_BEFORE' => '(?<=:-\s)',
- 'DISALLOWED_AFTER' => '(?=\.)'
- ),
- 3 => array(
- 'DISALLOWED_BEFORE' => '(?<![a-zA-Z0-9\$_\|\#>|^&\'"])',
- 'DISALLOWED_AFTER' => '(?=\()'
- ),
- 4 => array(
- 'DISALLOWED_BEFORE' => '(?<![a-zA-Z0-9\$_\|\#>|^&\'"])',
- 'DISALLOWED_AFTER' => '(?=\()'
- ),
- 5 => array(
- 'DISALLOWED_BEFORE' => '(?<![a-zA-Z0-9\$_\|\#>|^&\'"])',
- 'DISALLOWED_AFTER' => '(?![a-zA-Z0-9_\|%\\-&\'"])'
- ),
- 6 => array(
- 'DISALLOWED_BEFORE' => '(?<![a-zA-Z0-9\$_\|\#;>|^&\'"])',
- 'DISALLOWED_AFTER' => '(?=\()'
- ),
- 7 => array(
- 'DISALLOWED_BEFORE' => '(?<![a-zA-Z0-9\$_\|\#;>|^&\'"])',
- 'DISALLOWED_AFTER' => '(?![a-zA-Z0-9_\|%\\-&\'"])'
- )
- )
- ),
- );
-
- ?>
|