This commit is contained in:
Vitor Santos Costa 2017-08-21 12:42:51 +01:00
parent b2c8b9a06e
commit ec518d7d36

View File

@ -11,7 +11,7 @@
})(function(CodeMirror) {
"use strict";
CodeMirror.defineMode("prolog", function(cmConfig, modeConfig) {
CodeMirror.defineMode("prolog", function(cm_config, parserConfig) {
function chain(stream, state, f) {
state.tokenize = f;
@ -22,17 +22,15 @@
* CONFIG DATA *
*******************************/
var config = { quasiQuotations: false, /* {|Syntax||Quotation|} */
var config = {
quasiQuotations : false, /* {|Syntax||Quotation|} */
dicts : false, /* tag{k:v, ...} */
unicodeEscape : true, /* \uXXXX and \UXXXXXXXX */
multiLineQuoted : true, /* "...\n..." */
groupedIntegers : false /* 10 000 or 10_000 */
};
var quoteType = { '"': "string",
"'": "qatom",
"`": "bqstring"
};
var quoteType = {'"' : "string", "'" : "qatom", "`" : "bqstring"};
var isSingleEscChar = /[abref\\'"nrtsv]/;
var isOctalDigit = /[0-7]/;
@ -43,7 +41,6 @@
var isNeck = /^(:-|-->)$/;
var isControlOp = /^(,|;|->|\*->|\\+|\|)$/;
/*******************************
* CHARACTER ESCAPES *
*******************************/
@ -65,8 +62,8 @@
var next = stream.next();
if (isSingleEscChar.test(next))
return true;
switch( next )
{ case "u":
switch (next) {
case "u":
if (config.unicodeEscape)
return readDigits(stream, isHexDigit, 4); /* SWI */
return false;
@ -74,9 +71,13 @@
if (config.unicodeEscape)
return readDigits(stream, isHexDigit, 8); /* SWI */
return false;
case null: return true; /* end of line */
case "c": stream.eatSpace(); return true;
case "x": return readDigits(stream, isHexDigit, 2);
case null:
return true; /* end of line */
case "c":
stream.eatSpace();
return true;
case "x":
return readDigits(stream, isHexDigit, 2);
}
if (isOctalDigit.test(next)) {
if (!readDigits(stream, isOctalDigit, -1))
@ -91,12 +92,12 @@
function nextUntilUnescaped(stream, state, end) {
var next;
while ((next = stream.next()) != null) {
if ( next == end && end != stream.peek() )
{ state.nesting.pop();
if (next == end && end != stream.peek()) {
state.nesting.pop();
return false;
}
if ( next == "\\" )
{ if ( !readEsc(stream) )
if (next == "\\") {
if (!readEsc(stream))
return false;
}
}
@ -107,9 +108,7 @@
* CONTEXT NESTING *
*******************************/
function nesting(state) {
return state.nesting.slice(-1)[0];
}
function nesting(state) { return state.nesting.slice(-1)[0]; }
/* Called on every non-comment token */
function setArg1(state) {
@ -159,18 +158,17 @@
// consing up tons of objects.
var type, content;
function ret(tp, style, cont) {
type = tp; content = cont;
type = tp;
content = cont;
return style;
}
function peekSpace(stream) { /* TBD: handle block comment as space */
if ( stream.eol() ||
/[\s%]/.test(stream.peek()) )
if (stream.eol() || /[\s%]/.test(stream.peek()))
return true;
return false;
}
/*******************************
* SUB TOKENISERS *
*******************************/
@ -180,7 +178,8 @@
if (ch == "(") {
if (state.lastType == "functor") {
state.nesting.push({ functor: state.functorName,
state.nesting.push({
functor : state.functorName,
column : stream.column(),
leftCol : state.functorColumn,
arg : 0
@ -188,7 +187,8 @@
delete state.functorName;
delete state.functorColumn;
} else {
state.nesting.push({ type: "control",
state.nesting.push({
type : "control",
closeColumn : stream.column(),
alignment : stream.column() + 4
});
@ -197,7 +197,8 @@
}
if (ch == "{" && state.lastType == "tag") {
state.nesting.push({ tag: state.tagName,
state.nesting.push({
tag : state.tagName,
column : stream.column(),
leftCol : state.tagColumn,
arg : 0
@ -218,31 +219,35 @@
setArg1(state);
if (isSoloChar.test(ch)) {
switch ( ch )
{ case ")":
switch (ch) {
case ")":
state.nesting.pop();
break;
case "]":
state.nesting.pop();
return ret("list_close", null);
case "}":
{ var nest = nesting(state);
case "}": {
var nest = nesting(state);
var type = (nest && nest.tag) ? "dict_close" : "brace_term_close";
state.nesting.pop();
return ret(type, null);
}
}; break;
case ",":
if (stream.eol())
state.commaAtEOL = true;
nextArg(state);
/*FALLTHROUGH*/
if (isControl(state))
state.goalStart = true;
break;
case ";":
if (isControl(state))
state.goalStart = true;
break;
case "[":
state.nesting.push({ type: "list",
state.nesting.push({
type : "list",
closeColumn : stream.column(),
alignment : stream.column() + 2
});
@ -250,12 +255,12 @@
break;
case "{":
if (config.quasiQuotations && stream.eat("|")) {
state.nesting.push({ type: "quasi-quotation",
alignment: stream.column()+1
});
state.nesting.push(
{type : "quasi-quotation", alignment : stream.column() + 1});
return ret("qq_open", "qq_open");
} else {
state.nesting.push({ type: "curly",
state.nesting.push({
type : "curly",
closeColumn : stream.column(),
alignment : stream.column() + 2
});
@ -279,10 +284,8 @@
return ret("solo", null, ch);
}
if (ch == '"' || ch == "'" || ch == "`")
{ state.nesting.push({ type: "quoted",
alignment: stream.column()+1
});
if (ch == '"' || ch == "'" || ch == "`") {
state.nesting.push({type : "quoted", alignment : stream.column() + 1});
return chain(stream, state, plTokenString(ch));
}
@ -310,9 +313,8 @@
stream.match(/^\d*((_|\s+)\d+)*(?:\.\d+)?(?:[eE][+\-]?\d+)?/);
else
stream.match(/^\d*(?:\.\d+)?(?:[eE][+\-]?\d+)?/);
return ret(ch == "-" ? "neg-number" :
ch == "+" ? "pos-number" :
"number");
return ret(ch == "-" ? "neg-number"
: ch == "+" ? "pos-number" : "number");
}
if (isSymbolChar.test(ch)) {
@ -322,7 +324,8 @@
if (nesting(state)) {
return ret("fullstop", "error", atom);
} else {
} return ret("fullstop", "fullstop", atom);
}
return ret("fullstop", "fullstop", atom);
} else if (isNeck.test(atom)) {
return ret("neck", "neck", atom);
} else if (isControl(state) && isControlOp.test(atom)) {
@ -401,12 +404,12 @@
return ret("comment", "comment");
}
// /*******************************
// * ACTIVE KEYS *
// *******************************/
// /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// - -
// Support if-then-else layout like this:
// goal :-
@ -414,8 +417,8 @@
// -> IfTrue
// ; IfFalse
// ).
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// - - */
// CodeMirror.commands.prologStartIfThenElse = function(cm) {
// var start = cm.getCursor("start");
@ -496,10 +499,9 @@
// Default (SWI-)Prolog operator table. To be used later to enhance the
// offline experience.
var ops = { "-->": { p:1200, t:"xfx" },
":-": [ { p:1200, t:"xfx" },
{ p:1200, t:"fx" }
],
var ops = {
"-->" : {p : 1200, t : "xfx"},
":-" : [ {p : 1200, t : "xfx"}, {p : 1200, t : "fx"} ],
"?-" : {p : 1200, t : "fx"},
"dynamic" : {p : 1150, t : "fx"},
@ -543,12 +545,8 @@
":" : {p : 600, t : "xfy"},
"+": [ { p:500, t:"yfx" },
{ p:200, t:"fy" }
],
"-": [ { p:500, t:"yfx" },
{ p:200, t:"fy" }
],
"+" : [ {p : 500, t : "yfx"}, {p : 200, t : "fy"} ],
"-" : [ {p : 500, t : "yfx"}, {p : 200, t : "fy"} ],
"/\\" : {p : 500, t : "yfx"},
"\\/" : {p : 500, t : "yfx"},
"xor" : {p : 500, t : "yfx"},
@ -598,72 +596,17 @@
};
var builtins = {
"asserta": "prolog",
"atomic_list_concat": "prolog",
"char_type": "prolog",
"compile_expressions": "prolog",
"compile": "prolog",
"create_prolog_flag": "prolog",
"current_module": "prolog",
"current_op": "prolog",
"del_attrs": "prolog",
"depth_bound_call": "prolog",
"dule": "prolog",
"exo_files": "prolog",
"export_list": "prolog",
"foreign_directory": "prolog",
"garbage_collect_atoms": "prolog",
"garbage_collect": "prolog",
"get_attrs": "prolog",
"hread_signal": "prolog",
"ignore": "prolog",
"incore": "prolog",
"initialization": "prolog",
"int_message": "prolog",
"message_to_string": "prolog",
"module_property": "prolog",
"msort": "prolog",
"mutex_unlock_all": "prolog",
"no_style_check": "prolog",
"nospy": "prolog",
"notrace": "prolog",
"ortray_clause": "prolog",
"otherwise": "prolog",
"predsort": "prolog",
"prolog_initialization": "prolog",
"qend_program": "prolog",
"qsave_file": "prolog",
"recordaifnot": "prolog",
"set_base_module": "prolog",
"sformat": "prolog",
"source_file": "prolog",
"split_path_file": "prolog",
"stream_position": "prolog",
"system_error": "prolog",
"system_module": "prolog",
"t_head": "prolog",
"table_statistics": "prolog",
"tabling_mode": "prolog",
"tabling_statistics": "prolog",
"thread_defaults": "prolog",
"thread_local": "prolog",
"thread_set_defaults": "prolog",
"thread_statistics": "prolog",
"unix": "prolog",
"use_system_module": "prolog",
"user_defined_directive": "prolog",
"version": "prolog",
"C" : "prolog",
"abolish" : "prolog",
"abolish_all_tables" : "prolog",
"abolish_frozen_choice_points" : "prolog",
"abolish_module" : "prolog",
"abolish_table" : "prolog",
"abolish": "prolog",
"abort" : "prolog",
"absolute_file_name" : "prolog",
"absolute_file_system_path" : "prolog",
"access_file": "prolog",
"access" : "prolog",
"access_file" : "prolog",
"acyclic_term" : "prolog",
"add_import_module" : "prolog",
"add_to_array_element" : "prolog",
@ -673,17 +616,19 @@
"always_prompt_user" : "prolog",
"arena_size" : "prolog",
"arg" : "prolog",
"array_element": "prolog",
"array" : "prolog",
"assert_static": "prolog",
"asserta_static": "prolog",
"assertz_static": "prolog",
"assertz": "prolog",
"array_element" : "prolog",
"assert" : "prolog",
"assert_static" : "prolog",
"asserta" : "prolog",
"asserta_static" : "prolog",
"assertz" : "prolog",
"assertz_static" : "prolog",
"at_end_of_line" : "prolog",
"at_end_of_stream_0": "prolog",
"at_end_of_stream" : "prolog",
"at_end_of_stream_0" : "prolog",
"at_halt" : "prolog",
"atom" : "prolog",
"atom_chars" : "prolog",
"atom_codes" : "prolog",
"atom_concat" : "prolog",
@ -695,8 +640,6 @@
"atomic_length" : "prolog",
"atomic_list_concat" : "prolog",
"atomics_to_string" : "prolog",
"atomic": "prolog",
"atom": "prolog",
"attvar" : "prolog",
"b_getval" : "prolog",
"b_setval" : "prolog",
@ -708,41 +651,41 @@
"between" : "prolog",
"bootstrap" : "prolog",
"break" : "prolog",
"call" : "prolog",
"call_cleanup" : "prolog",
"call_count" : "prolog",
"call_count_data" : "prolog",
"call_count_reset" : "prolog",
"call_count": "prolog",
"call_residue_vars": "prolog",
"call_residue" : "prolog",
"call_residue_vars" : "prolog",
"call_shared_object_function" : "prolog",
"call_with_args" : "prolog",
"callable" : "prolog",
"call": "prolog",
"catch_ball": "prolog",
"catch" : "prolog",
"catch_ball" : "prolog",
"cd" : "prolog",
"cfile_search_path" : "prolog",
"char_code" : "prolog",
"char_conversion" : "prolog",
"char_type" : "prolog",
"clause_property": "prolog",
"clause" : "prolog",
"clause_property" : "prolog",
"close" : "prolog",
"close_shared_object" : "prolog",
"close_static_array" : "prolog",
"close": "prolog",
"code_type" : "prolog",
"commons_directory" : "prolog",
"commons_library" : "prolog",
"compare" : "prolog",
"compile" : "prolog",
"compile_expressions" : "prolog",
"compile_predicates" : "prolog",
"compile": "prolog",
"compound" : "prolog",
"consult_depth": "prolog",
"consult" : "prolog",
"consult_depth" : "prolog",
"context_module" : "prolog",
"copy_term_nat": "prolog",
"copy_term" : "prolog",
"copy_term_nat" : "prolog",
"create_mutable" : "prolog",
"create_prolog_flag" : "prolog",
"creep_allowed" : "prolog",
@ -755,7 +698,6 @@
"current_module" : "prolog",
"current_mutex" : "prolog",
"current_op" : "prolog",
"current_output": "prolog",
"current_predicate" : "prolog",
"current_prolog_flag" : "prolog",
"current_reference_count" : "prolog",
@ -763,11 +705,11 @@
"current_thread" : "prolog",
"db_files" : "prolog",
"db_reference" : "prolog",
"debugging": "prolog",
"debug" : "prolog",
"debugging" : "prolog",
"decrease_reference_count" : "prolog",
"del_attrs": "prolog",
"del_attr" : "prolog",
"del_attrs" : "prolog",
"delete_import_module" : "prolog",
"depth_bound_call" : "prolog",
"dif" : "prolog",
@ -776,33 +718,34 @@
"do_c_built_in" : "prolog",
"do_c_built_metacall" : "prolog",
"do_not_compile_expressions" : "prolog",
"dump_active_goals": "prolog",
"dule" : "prolog",
"dum" : "prolog",
"dump_active_goals" : "prolog",
"duplicate_term" : "prolog",
"dynamic" : "prolog",
"dynamic_predicate" : "prolog",
"dynamic_update_array" : "prolog",
"dynamic": "prolog",
"eamconsult" : "prolog",
"eamtrans" : "prolog",
"end_of_file" : "prolog",
"ensure_loaded" : "prolog",
"erase" : "prolog",
"eraseall" : "prolog",
"erased" : "prolog",
"erase": "prolog",
"exists" : "prolog",
"exists_directory" : "prolog",
"exists_file" : "prolog",
"exists_source" : "prolog",
"exists": "prolog",
"exo_files" : "prolog",
"expand_exprs": "prolog",
"expand_expr" : "prolog",
"expand_exprs" : "prolog",
"expand_file_name" : "prolog",
"expand_goal" : "prolog",
"expand_term" : "prolog",
"expects_dialect" : "prolog",
"export" : "prolog",
"export_list" : "prolog",
"export_resource" : "prolog",
"export": "prolog",
"extend" : "prolog",
"fail" : "prolog",
"false" : "prolog",
@ -819,15 +762,17 @@
"forall" : "prolog",
"foreign_directory" : "prolog",
"format" : "prolog",
"freeze_choice_point": "prolog",
"freeze" : "prolog",
"freeze_choice_point" : "prolog",
"frozen" : "prolog",
"functor" : "prolog",
"garbage_collect_atoms": "prolog",
"garbage_collect" : "prolog",
"garbage_collect_atoms" : "prolog",
"gc" : "prolog",
"get" : "prolog",
"get0" : "prolog",
"get_attr" : "prolog",
"get_attrs" : "prolog",
"get_byte" : "prolog",
"get_char" : "prolog",
"get_code" : "prolog",
@ -837,7 +782,6 @@
"get_value" : "prolog",
"getcwd" : "prolog",
"getenv" : "prolog",
"get": "prolog",
"global_trie_statistics" : "prolog",
"ground" : "prolog",
"grow_heap" : "prolog",
@ -848,6 +792,7 @@
"hide_predicate" : "prolog",
"hostname_address" : "prolog",
"hread_get_message" : "prolog",
"hread_signal" : "prolog",
"if" : "prolog",
"ignore" : "prolog",
"import_module" : "prolog",
@ -855,16 +800,17 @@
"increase_reference_count" : "prolog",
"init_random_state" : "prolog",
"initialization" : "prolog",
"instance_property": "prolog",
"instance" : "prolog",
"instance_property" : "prolog",
"int_message" : "prolog",
"integer" : "prolog",
"is" : "prolog",
"is_absolute_file_name" : "prolog",
"is_list" : "prolog",
"is_mutable" : "prolog",
"is_tabled" : "prolog",
"isinf" : "prolog",
"isnan" : "prolog",
"is": "prolog",
"key_erased_statistics" : "prolog",
"key_statistics" : "prolog",
"keysort" : "prolog",
@ -879,19 +825,19 @@
"load_foreign_files" : "prolog",
"log_event" : "prolog",
"logsum" : "prolog",
"ls_imports": "prolog",
"ls" : "prolog",
"ls_imports" : "prolog",
"make" : "prolog",
"make_directory" : "prolog",
"make_library_index" : "prolog",
"make": "prolog",
"message_queue_create" : "prolog",
"message_queue_destroy" : "prolog",
"message_queue_property" : "prolog",
"message_to_string" : "prolog",
"mmapped_array" : "prolog",
"module" : "prolog",
"module_property" : "prolog",
"module_state" : "prolog",
"module": "prolog",
"msort" : "prolog",
"multifile" : "prolog",
"must_be_of_type" : "prolog",
@ -918,38 +864,39 @@
"nofileeleerrors" : "prolog",
"nogc" : "prolog",
"nonvar" : "prolog",
"nospyall": "prolog",
"nospy" : "prolog",
"notrace": "prolog",
"nospyall" : "prolog",
"not" : "prolog",
"notrace" : "prolog",
"nth_clause" : "prolog",
"nth_instance" : "prolog",
"number" : "prolog",
"number_atom" : "prolog",
"number_chars" : "prolog",
"number_codes" : "prolog",
"number_string" : "prolog",
"numbervars" : "prolog",
"number": "prolog",
"on_exception" : "prolog",
"on_signal" : "prolog",
"once" : "prolog",
"op" : "prolog",
"opaque" : "prolog",
"open" : "prolog",
"open_pipe_stream" : "prolog",
"open_shared_object" : "prolog",
"open": "prolog",
"opt_statistics" : "prolog",
"op": "prolog",
"or_statistics" : "prolog",
"ortray_clause" : "prolog",
"otherwise" : "prolog",
"parallel" : "prolog",
"parallel_findall" : "prolog",
"parallel_findfirst" : "prolog",
"parallel_once" : "prolog",
"parallel": "prolog",
"path" : "prolog",
"peek" : "prolog",
"peek_byte" : "prolog",
"peek_char" : "prolog",
"peek_code" : "prolog",
"peek": "prolog",
"phrase" : "prolog",
"plus" : "prolog",
"portray_clause" : "prolog",
@ -959,9 +906,9 @@
"predmerge" : "prolog",
"predsort" : "prolog",
"primitive" : "prolog",
"print_message_lines": "prolog",
"print_message": "prolog",
"print" : "prolog",
"print_message" : "prolog",
"print_message_lines" : "prolog",
"private" : "prolog",
"profalt" : "prolog",
"profend" : "prolog",
@ -970,25 +917,25 @@
"profinit" : "prolog",
"profoff" : "prolog",
"profon" : "prolog",
"prolog" : "prolog",
"prolog_current_frame" : "prolog",
"prolog_file_name" : "prolog",
"prolog_file_type" : "prolog",
"prolog_flag_property": "prolog",
"prolog_flag" : "prolog",
"prolog_flag_property" : "prolog",
"prolog_initialization" : "prolog",
"prolog_load_context" : "prolog",
"prolog_to_os_filename" : "prolog",
"prolog": "prolog",
"prompt1": "prolog",
"prompt" : "prolog",
"put_attrs": "prolog",
"prompt1" : "prolog",
"put" : "prolog",
"put_attr" : "prolog",
"put_attrs" : "prolog",
"put_byte" : "prolog",
"put_char1": "prolog",
"put_char" : "prolog",
"put_char1" : "prolog",
"put_code" : "prolog",
"putenv" : "prolog",
"put": "prolog",
"pwd" : "prolog",
"qend_program" : "prolog",
"qload_file" : "prolog",
@ -998,24 +945,24 @@
"qsave_module" : "prolog",
"qsave_program" : "prolog",
"raise_exception" : "prolog",
"rational_term_to_tree": "prolog",
"rational" : "prolog",
"rational_term_to_tree" : "prolog",
"read" : "prolog",
"read_clause" : "prolog",
"read_sig" : "prolog",
"read_term_from_atomic": "prolog",
"read_term_from_atom": "prolog",
"read_term_from_string": "prolog",
"read_term" : "prolog",
"read": "prolog",
"read_term_from_atom" : "prolog",
"read_term_from_atomic" : "prolog",
"read_term_from_string" : "prolog",
"real_path" : "prolog",
"reconsult" : "prolog",
"recorda" : "prolog",
"recorda_at" : "prolog",
"recordaifnot" : "prolog",
"recorda": "prolog",
"recorded" : "prolog",
"recordz" : "prolog",
"recordz_at" : "prolog",
"recordzifnot" : "prolog",
"recordz": "prolog",
"release_random_state" : "prolog",
"remove_from_path" : "prolog",
"rename" : "prolog",
@ -1024,21 +971,21 @@
"reset_total_choicepoints" : "prolog",
"resize_static_array" : "prolog",
"restore" : "prolog",
"retractall": "prolog",
"retract" : "prolog",
"retractall" : "prolog",
"rmdir" : "prolog",
"same_file" : "prolog",
"save_program" : "prolog",
"see" : "prolog",
"seeing" : "prolog",
"seen" : "prolog",
"see": "prolog",
"set_base_module" : "prolog",
"set_input" : "prolog",
"set_output" : "prolog",
"set_prolog_flag" : "prolog",
"set_random_state" : "prolog",
"set_stream_position": "prolog",
"set_stream" : "prolog",
"set_stream_position" : "prolog",
"set_value" : "prolog",
"setarg" : "prolog",
"setenv" : "prolog",
@ -1046,57 +993,57 @@
"setup_call_catcher_cleanup" : "prolog",
"setup_call_cleanup" : "prolog",
"sformat" : "prolog",
"sh" : "prolog",
"show_all_local_tables" : "prolog",
"show_all_tables" : "prolog",
"show_global_trieshow_tabled_predicates": "prolog",
"show_global_trie" : "prolog",
"show_global_trieshow_tabled_predicates" : "prolog",
"show_low_level_trace" : "prolog",
"show_tabled_predicates": "prolog",
"show_table" : "prolog",
"show_tabled_predicates" : "prolog",
"showprofres" : "prolog",
"sh": "prolog",
"simple" : "prolog",
"skip1": "prolog",
"skip" : "prolog",
"skip1" : "prolog",
"socket" : "prolog",
"socket_accept" : "prolog",
"socket_bind" : "prolog",
"socket_close" : "prolog",
"socket_connect" : "prolog",
"socket_listen" : "prolog",
"socket": "prolog",
"sort2": "prolog",
"sort" : "prolog",
"source_file_property": "prolog",
"sort2" : "prolog",
"source" : "prolog",
"source_file" : "prolog",
"source_file_property" : "prolog",
"source_location" : "prolog",
"source_mode" : "prolog",
"source_module" : "prolog",
"source": "prolog",
"split_path_file" : "prolog",
"spy" : "prolog",
"srandom" : "prolog",
"start_low_level_trace" : "prolog",
"stash_predicate" : "prolog",
"static_array" : "prolog",
"static_array_location" : "prolog",
"static_array_properties" : "prolog",
"static_array_to_term" : "prolog",
"static_array": "prolog",
"statistics" : "prolog",
"stop_low_level_trace" : "prolog",
"stream_position_data": "prolog",
"stream_position" : "prolog",
"stream_position_data" : "prolog",
"stream_property" : "prolog",
"stream_select" : "prolog",
"string" : "prolog",
"string_chars" : "prolog",
"string_codes": "prolog",
"string_code" : "prolog",
"string_codes" : "prolog",
"string_concat" : "prolog",
"string_length" : "prolog",
"string_number" : "prolog",
"string_to_atomic": "prolog",
"string_to_atom" : "prolog",
"string_to_atomic" : "prolog",
"string_to_list" : "prolog",
"string": "prolog",
"strip_module" : "prolog",
"style_check" : "prolog",
"sub_atom" : "prolog",
@ -1104,24 +1051,24 @@
"subsumes_term" : "prolog",
"succ" : "prolog",
"sys_debug" : "prolog",
"system" : "prolog",
"system_error" : "prolog",
"system_library" : "prolog",
"system_module" : "prolog",
"system_predicate" : "prolog",
"system": "prolog",
"t_body" : "prolog",
"t_head" : "prolog",
"t_hgoal" : "prolog",
"t_hlist" : "prolog",
"t_tidy" : "prolog",
"tab" : "prolog",
"tab1" : "prolog",
"table_statistics": "prolog",
"table" : "prolog",
"table_statistics" : "prolog",
"tabling_mode" : "prolog",
"tabling_statistics" : "prolog",
"tab": "prolog",
"telling": "prolog",
"tell" : "prolog",
"telling" : "prolog",
"term_attvars" : "prolog",
"term_factorized" : "prolog",
"term_to_atom" : "prolog",
@ -1130,8 +1077,8 @@
"thread_at_exit" : "prolog",
"thread_cancel" : "prolog",
"thread_create" : "prolog",
"thread_defaults": "prolog",
"thread_default" : "prolog",
"thread_defaults" : "prolog",
"thread_detach" : "prolog",
"thread_exit" : "prolog",
"thread_get_message" : "prolog",
@ -1141,27 +1088,27 @@
"thread_property" : "prolog",
"thread_self" : "prolog",
"thread_send_message" : "prolog",
"thread_set_defaults": "prolog",
"thread_set_default" : "prolog",
"thread_set_defaults" : "prolog",
"thread_signal" : "prolog",
"thread_sleep" : "prolog",
"thread_statistics" : "prolog",
"threads" : "prolog",
"throw" : "prolog",
"time_file64": "prolog",
"time_file": "prolog",
"time" : "prolog",
"time_file" : "prolog",
"time_file64" : "prolog",
"told" : "prolog",
"tolower" : "prolog",
"total_choicepoints" : "prolog",
"total_erased" : "prolog",
"toupper" : "prolog",
"trace" : "prolog",
"true_file_name": "prolog",
"true" : "prolog",
"true_file_name" : "prolog",
"tthread_peek_message" : "prolog",
"ttyget0": "prolog",
"ttyget" : "prolog",
"ttyget0" : "prolog",
"ttynl" : "prolog",
"ttyput" : "prolog",
"ttyskip" : "prolog",
@ -1186,12 +1133,12 @@
"with_mutex" : "prolog",
"with_output_to" : "prolog",
"working_directory" : "prolog",
"write" : "prolog",
"write_canonical" : "prolog",
"write_depth" : "prolog",
"write_term" : "prolog",
"writeln" : "prolog",
"writeq" : "prolog",
"write": "prolog",
"yap_flag" : "prolog"
};
@ -1211,13 +1158,10 @@
curToken : null /* token in term */
};
},
token : function(stream, state) {
var nest;
// var nest;
if ( state.curTerm == null && mode
Config.metainfo ) {
if (state.curTerm == null && parserConfig.metainfo) {
state.curTerm = 0;
state.curToken = 0;
}
@ -1246,16 +1190,22 @@
state.lastType = type;
if (builtins[state.curToken] == "prolog")
return "builtin";
if (ops[state.curToken])
return "operator";
if (typeof(parserConfig.enrich) == "function")
style = parserConfig.enrich(stream, state, type, content, style);
return style;
return translType[type];
},
indent : function(state, textAfter) {
if (state.tokenize == plTokenComment) return CodeMirror.Pass;
if (state.tokenize == plTokenComment)
return CodeMirror.Pass;
var nest;
if ((nest = nesting(state))) {
@ -1280,4 +1230,5 @@
});
CodeMirror.defineMIME("text/x-prolog", "prolog");
});