/lenasys/trunk

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/lenasys/trunk

« back to all changes in this revision

Viewing changes to js/ace/mode-pgsql.js

  • Committer: Gustav Hatvigsson
  • Date: 2013-05-31 06:15:46 UTC
  • mfrom: (90.1.20 lenasys2)
  • Revision ID: gustav.hartvigsson@gmail.com-20130531061546-vj8z28sq375kvghq
Merged Jonsson:s changes:
Fixed the layout on cms index so the arrows and dots marks expanded objects.
Fixed so the course content is sorted by course occasion and not by name

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* ***** BEGIN LICENSE BLOCK *****
 
2
 * Distributed under the BSD license:
 
3
 *
 
4
 * Copyright (c) 2010, Ajax.org B.V.
 
5
 * All rights reserved.
 
6
 * 
 
7
 * Redistribution and use in source and binary forms, with or without
 
8
 * modification, are permitted provided that the following conditions are met:
 
9
 *     * Redistributions of source code must retain the above copyright
 
10
 *       notice, this list of conditions and the following disclaimer.
 
11
 *     * Redistributions in binary form must reproduce the above copyright
 
12
 *       notice, this list of conditions and the following disclaimer in the
 
13
 *       documentation and/or other materials provided with the distribution.
 
14
 *     * Neither the name of Ajax.org B.V. nor the
 
15
 *       names of its contributors may be used to endorse or promote products
 
16
 *       derived from this software without specific prior written permission.
 
17
 * 
 
18
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
 
19
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 
20
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 
21
 * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY
 
22
 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 
23
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 
24
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 
25
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 
26
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 
27
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
28
 *
 
29
 * ***** END LICENSE BLOCK ***** */
 
30
 
 
31
define('ace/mode/pgsql', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/pgsql_highlight_rules', 'ace/range'], function(require, exports, module) {
 
32
 
 
33
var oop = require("../lib/oop");
 
34
var TextMode = require("../mode/text").Mode;
 
35
var Tokenizer = require("../tokenizer").Tokenizer;
 
36
var PgsqlHighlightRules = require("./pgsql_highlight_rules").PgsqlHighlightRules;
 
37
var Range = require("../range").Range;
 
38
 
 
39
var Mode = function() {
 
40
    this.$tokenizer = new Tokenizer(new PgsqlHighlightRules().getRules());
 
41
};
 
42
oop.inherits(Mode, TextMode);
 
43
 
 
44
(function() {       
 
45
    this.lineCommentStart = "--";
 
46
    this.blockComment = {start: "/*", end: "*/"};
 
47
 
 
48
    this.getNextLineIndent = function(state, line, tab) { 
 
49
        if (state == "start" || state == "keyword.statementEnd") {
 
50
            return "";
 
51
        } else {
 
52
            return this.$getIndent(line); // Keep whatever indent the previous line has
 
53
        }
 
54
    }
 
55
 
 
56
}).call(Mode.prototype);
 
57
 
 
58
exports.Mode = Mode;
 
59
});
 
60
 
 
61
define('ace/mode/pgsql_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/mode/doc_comment_highlight_rules', 'ace/mode/text_highlight_rules', 'ace/mode/perl_highlight_rules', 'ace/mode/python_highlight_rules'], function(require, exports, module) {
 
62
 
 
63
var oop = require("../lib/oop");
 
64
var lang = require("../lib/lang");
 
65
var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules;
 
66
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
 
67
var PerlHighlightRules = require("./perl_highlight_rules").PerlHighlightRules;
 
68
var PythonHighlightRules = require("./python_highlight_rules").PythonHighlightRules;
 
69
 
 
70
var PgsqlHighlightRules = function() {
 
71
    var keywords = (
 
72
        "abort|absolute|abstime|access|aclitem|action|add|admin|after|aggregate|all|also|alter|always|" +
 
73
        "analyse|analyze|and|any|anyarray|anyelement|anyenum|anynonarray|array|as|asc|assertion|" +
 
74
        "assignment|asymmetric|at|attribute|authorization|backward|before|begin|between|bigint|" +
 
75
        "binary|bit|bool|boolean|both|box|bpchar|by|bytea|cache|called|cascade|cascaded|case|cast|" +
 
76
        "catalog|chain|char|character|characteristics|check|checkpoint|cid|cidr|circle|class|close|" +
 
77
        "cluster|coalesce|collate|collation|column|comment|comments|commit|committed|concurrently|" +
 
78
        "configuration|connection|constraint|constraints|content|continue|conversion|copy|cost|" +
 
79
        "create|cross|cstring|csv|current|current_catalog|current_date|current_role|" +
 
80
        "current_schema|current_time|current_timestamp|current_user|cursor|cycle|data|database|" +
 
81
        "date|day|deallocate|dec|decimal|declare|default|defaults|deferrable|deferred|definer|delete|" +
 
82
        "delimiter|delimiters|desc|dictionary|disable|discard|distinct|do|document|domain|double|" +
 
83
        "drop|each|else|enable|encoding|encrypted|end|enum|escape|except|exclude|excluding|exclusive|" +
 
84
        "execute|exists|explain|extension|external|extract|false|family|fdw_handler|fetch|first|" +
 
85
        "float|float4|float8|following|for|force|foreign|forward|freeze|from|full|function|functions|" +
 
86
        "global|grant|granted|greatest|group|gtsvector|handler|having|header|hold|hour|identity|if|" +
 
87
        "ilike|immediate|immutable|implicit|in|including|increment|index|indexes|inet|inherit|" +
 
88
        "inherits|initially|inline|inner|inout|input|insensitive|insert|instead|int|int2|int2vector|" +
 
89
        "int4|int8|integer|internal|intersect|interval|into|invoker|is|isnull|isolation|join|key|label|" +
 
90
        "language|language_handler|large|last|lc_collate|lc_ctype|leading|least|left|level|like|" +
 
91
        "limit|line|listen|load|local|localtime|localtimestamp|location|lock|lseg|macaddr|mapping|" +
 
92
        "match|maxvalue|minute|minvalue|mode|money|month|move|name|names|national|natural|nchar|next|no|" +
 
93
        "none|not|nothing|notify|notnull|nowait|null|nullif|nulls|numeric|object|of|off|offset|oid|oids|" +
 
94
        "oidvector|on|only|opaque|operator|option|options|or|order|out|outer|over|overlaps|overlay|" +
 
95
        "owned|owner|parser|partial|partition|passing|password|path|pg_attribute|pg_auth_members|" +
 
96
        "pg_authid|pg_class|pg_database|pg_node_tree|pg_proc|pg_type|placing|plans|point|polygon|" +
 
97
        "position|preceding|precision|prepare|prepared|preserve|primary|prior|privileges|" +
 
98
        "procedural|procedure|quote|range|read|real|reassign|recheck|record|recursive|ref|refcursor|" +
 
99
        "references|regclass|regconfig|regdictionary|regoper|regoperator|regproc|regprocedure|" +
 
100
        "regtype|reindex|relative|release|reltime|rename|repeatable|replace|replica|reset|restart|" +
 
101
        "restrict|returning|returns|revoke|right|role|rollback|row|rows|rule|savepoint|schema|scroll|" +
 
102
        "search|second|security|select|sequence|sequences|serializable|server|session|session_user|" +
 
103
        "set|setof|share|show|similar|simple|smallint|smgr|some|stable|standalone|start|statement|" +
 
104
        "statistics|stdin|stdout|storage|strict|strip|substring|symmetric|sysid|system|table|tables|" +
 
105
        "tablespace|temp|template|temporary|text|then|tid|time|timestamp|timestamptz|timetz|" +
 
106
        "tinterval|to|trailing|transaction|treat|trigger|trim|true|truncate|trusted|tsquery|tsvector|" +
 
107
        "txid_snapshot|type|unbounded|uncommitted|unencrypted|union|unique|unknown|unlisten|" +
 
108
        "unlogged|until|update|user|using|uuid|vacuum|valid|validate|validator|value|values|varbit|" +
 
109
        "varchar|variadic|varying|verbose|version|view|void|volatile|when|where|whitespace|window|" +
 
110
        "with|without|work|wrapper|write|xid|xml|xmlattributes|xmlconcat|xmlelement|xmlexists|" +
 
111
        "xmlforest|xmlparse|xmlpi|xmlroot|xmlserialize|year|yes|zone"
 
112
    );
 
113
 
 
114
 
 
115
    var builtinFunctions = (
 
116
        "RI_FKey_cascade_del|RI_FKey_cascade_upd|RI_FKey_check_ins|RI_FKey_check_upd|" +
 
117
        "RI_FKey_noaction_del|RI_FKey_noaction_upd|RI_FKey_restrict_del|RI_FKey_restrict_upd|" +
 
118
        "RI_FKey_setdefault_del|RI_FKey_setdefault_upd|RI_FKey_setnull_del|" +
 
119
        "RI_FKey_setnull_upd|abbrev|abs|abstime|abstimeeq|abstimege|abstimegt|abstimein|abstimele|" +
 
120
        "abstimelt|abstimene|abstimeout|abstimerecv|abstimesend|aclcontains|aclexplode|aclinsert|" +
 
121
        "aclitemeq|aclitemin|aclitemout|aclremove|acos|age|any_in|any_out|anyarray_in|anyarray_out|" +
 
122
        "anyarray_recv|anyarray_send|anyelement_in|anyelement_out|anyenum_in|anyenum_out|" +
 
123
        "anynonarray_in|anynonarray_out|anytextcat|area|areajoinsel|areasel|array_agg|" +
 
124
        "array_agg_finalfn|array_agg_transfn|array_append|array_cat|array_dims|array_eq|" +
 
125
        "array_fill|array_ge|array_gt|array_in|array_larger|array_le|array_length|array_lower|" +
 
126
        "array_lt|array_ndims|array_ne|array_out|array_prepend|array_recv|array_send|" +
 
127
        "array_smaller|array_to_string|array_upper|arraycontained|arraycontains|arrayoverlap|" +
 
128
        "ascii|ascii_to_mic|ascii_to_utf8|asin|atan|atan2|avg|big5_to_euc_tw|big5_to_mic|" +
 
129
        "big5_to_utf8|bit_and|bit_in|bit_length|bit_or|bit_out|bit_recv|bit_send|bitand|bitcat|" +
 
130
        "bitcmp|biteq|bitge|bitgt|bitle|bitlt|bitne|bitnot|bitor|bitshiftleft|bitshiftright|" +
 
131
        "bittypmodin|bittypmodout|bitxor|bool|bool_and|bool_or|booland_statefunc|booleq|boolge|" +
 
132
        "boolgt|boolin|boolle|boollt|boolne|boolor_statefunc|boolout|boolrecv|boolsend|box|" +
 
133
        "box_above|box_above_eq|box_add|box_below|box_below_eq|box_center|box_contain|" +
 
134
        "box_contain_pt|box_contained|box_distance|box_div|box_eq|box_ge|box_gt|box_in|" +
 
135
        "box_intersect|box_le|box_left|box_lt|box_mul|box_out|box_overabove|box_overbelow|" +
 
136
        "box_overlap|box_overleft|box_overright|box_recv|box_right|box_same|box_send|box_sub|" +
 
137
        "bpchar_larger|bpchar_pattern_ge|bpchar_pattern_gt|bpchar_pattern_le|" +
 
138
        "bpchar_pattern_lt|bpchar_smaller|bpcharcmp|bpchareq|bpcharge|bpchargt|bpchariclike|" +
 
139
        "bpcharicnlike|bpcharicregexeq|bpcharicregexne|bpcharin|bpcharle|bpcharlike|bpcharlt|" +
 
140
        "bpcharne|bpcharnlike|bpcharout|bpcharrecv|bpcharregexeq|bpcharregexne|bpcharsend|" +
 
141
        "bpchartypmodin|bpchartypmodout|broadcast|btabstimecmp|btarraycmp|btbeginscan|btboolcmp|" +
 
142
        "btbpchar_pattern_cmp|btbuild|btbuildempty|btbulkdelete|btcharcmp|btcostestimate|" +
 
143
        "btendscan|btfloat48cmp|btfloat4cmp|btfloat84cmp|btfloat8cmp|btgetbitmap|btgettuple|" +
 
144
        "btinsert|btint24cmp|btint28cmp|btint2cmp|btint42cmp|btint48cmp|btint4cmp|btint82cmp|" +
 
145
        "btint84cmp|btint8cmp|btmarkpos|btnamecmp|btoidcmp|btoidvectorcmp|btoptions|btrecordcmp|" +
 
146
        "btreltimecmp|btrescan|btrestrpos|btrim|bttext_pattern_cmp|bttextcmp|bttidcmp|" +
 
147
        "bttintervalcmp|btvacuumcleanup|byteacat|byteacmp|byteaeq|byteage|byteagt|byteain|byteale|" +
 
148
        "bytealike|bytealt|byteane|byteanlike|byteaout|bytearecv|byteasend|cash_cmp|cash_div_cash|" +
 
149
        "cash_div_flt4|cash_div_flt8|cash_div_int2|cash_div_int4|cash_eq|cash_ge|cash_gt|cash_in|" +
 
150
        "cash_le|cash_lt|cash_mi|cash_mul_flt4|cash_mul_flt8|cash_mul_int2|cash_mul_int4|cash_ne|" +
 
151
        "cash_out|cash_pl|cash_recv|cash_send|cash_words|cashlarger|cashsmaller|cbrt|ceil|ceiling|" +
 
152
        "center|char|char_length|character_length|chareq|charge|chargt|charin|charle|charlt|charne|" +
 
153
        "charout|charrecv|charsend|chr|cideq|cidin|cidout|cidr|cidr_in|cidr_out|cidr_recv|cidr_send|" +
 
154
        "cidrecv|cidsend|circle|circle_above|circle_add_pt|circle_below|circle_center|" +
 
155
        "circle_contain|circle_contain_pt|circle_contained|circle_distance|circle_div_pt|" +
 
156
        "circle_eq|circle_ge|circle_gt|circle_in|circle_le|circle_left|circle_lt|circle_mul_pt|" +
 
157
        "circle_ne|circle_out|circle_overabove|circle_overbelow|circle_overlap|circle_overleft|" +
 
158
        "circle_overright|circle_recv|circle_right|circle_same|circle_send|circle_sub_pt|" +
 
159
        "clock_timestamp|close_lb|close_ls|close_lseg|close_pb|close_pl|close_ps|close_sb|" +
 
160
        "close_sl|col_description|concat|concat_ws|contjoinsel|contsel|convert|convert_from|" +
 
161
        "convert_to|corr|cos|cot|count|covar_pop|covar_samp|cstring_in|cstring_out|cstring_recv|" +
 
162
        "cstring_send|cume_dist|current_database|current_query|current_schema|current_schemas|" +
 
163
        "current_setting|current_user|currtid|currtid2|currval|cursor_to_xml|" +
 
164
        "cursor_to_xmlschema|database_to_xml|database_to_xml_and_xmlschema|" +
 
165
        "database_to_xmlschema|date|date_cmp|date_cmp_timestamp|date_cmp_timestamptz|date_eq|" +
 
166
        "date_eq_timestamp|date_eq_timestamptz|date_ge|date_ge_timestamp|date_ge_timestamptz|" +
 
167
        "date_gt|date_gt_timestamp|date_gt_timestamptz|date_in|date_larger|date_le|" +
 
168
        "date_le_timestamp|date_le_timestamptz|date_lt|date_lt_timestamp|date_lt_timestamptz|" +
 
169
        "date_mi|date_mi_interval|date_mii|date_ne|date_ne_timestamp|date_ne_timestamptz|" +
 
170
        "date_out|date_part|date_pl_interval|date_pli|date_recv|date_send|date_smaller|" +
 
171
        "date_trunc|datetime_pl|datetimetz_pl|dcbrt|decode|degrees|dense_rank|dexp|diagonal|" +
 
172
        "diameter|dispell_init|dispell_lexize|dist_cpoly|dist_lb|dist_pb|dist_pc|dist_pl|" +
 
173
        "dist_ppath|dist_ps|dist_sb|dist_sl|div|dlog1|dlog10|domain_in|domain_recv|dpow|dround|" +
 
174
        "dsimple_init|dsimple_lexize|dsnowball_init|dsnowball_lexize|dsqrt|dsynonym_init|" +
 
175
        "dsynonym_lexize|dtrunc|encode|enum_cmp|enum_eq|enum_first|enum_ge|enum_gt|enum_in|" +
 
176
        "enum_larger|enum_last|enum_le|enum_lt|enum_ne|enum_out|enum_range|enum_recv|enum_send|" +
 
177
        "enum_smaller|eqjoinsel|eqsel|euc_cn_to_mic|euc_cn_to_utf8|" +
 
178
        "euc_jis_2004_to_shift_jis_2004|euc_jis_2004_to_utf8|euc_jp_to_mic|euc_jp_to_sjis|" +
 
179
        "euc_jp_to_utf8|euc_kr_to_mic|euc_kr_to_utf8|euc_tw_to_big5|euc_tw_to_mic|" +
 
180
        "euc_tw_to_utf8|every|exp|factorial|family|fdw_handler_in|fdw_handler_out|first_value|" +
 
181
        "float4|float48div|float48eq|float48ge|float48gt|float48le|float48lt|float48mi|float48mul|" +
 
182
        "float48ne|float48pl|float4_accum|float4abs|float4div|float4eq|float4ge|float4gt|float4in|" +
 
183
        "float4larger|float4le|float4lt|float4mi|float4mul|float4ne|float4out|float4pl|float4recv|" +
 
184
        "float4send|float4smaller|float4um|float4up|float8|float84div|float84eq|float84ge|" +
 
185
        "float84gt|float84le|float84lt|float84mi|float84mul|float84ne|float84pl|float8_accum|" +
 
186
        "float8_avg|float8_corr|float8_covar_pop|float8_covar_samp|float8_regr_accum|" +
 
187
        "float8_regr_avgx|float8_regr_avgy|float8_regr_intercept|float8_regr_r2|" +
 
188
        "float8_regr_slope|float8_regr_sxx|float8_regr_sxy|float8_regr_syy|float8_stddev_pop|" +
 
189
        "float8_stddev_samp|float8_var_pop|float8_var_samp|float8abs|float8div|float8eq|" +
 
190
        "float8ge|float8gt|float8in|float8larger|float8le|float8lt|float8mi|float8mul|float8ne|" +
 
191
        "float8out|float8pl|float8recv|float8send|float8smaller|float8um|float8up|floor|" +
 
192
        "flt4_mul_cash|flt8_mul_cash|fmgr_c_validator|fmgr_internal_validator|" +
 
193
        "fmgr_sql_validator|format|format_type|gb18030_to_utf8|gbk_to_utf8|generate_series|" +
 
194
        "generate_subscripts|get_bit|get_byte|get_current_ts_config|getdatabaseencoding|" +
 
195
        "getpgusername|gin_cmp_prefix|gin_cmp_tslexeme|gin_extract_tsquery|" +
 
196
        "gin_extract_tsvector|gin_tsquery_consistent|ginarrayconsistent|ginarrayextract|" +
 
197
        "ginbeginscan|ginbuild|ginbuildempty|ginbulkdelete|gincostestimate|ginendscan|" +
 
198
        "gingetbitmap|gininsert|ginmarkpos|ginoptions|ginqueryarrayextract|ginrescan|" +
 
199
        "ginrestrpos|ginvacuumcleanup|gist_box_compress|gist_box_consistent|" +
 
200
        "gist_box_decompress|gist_box_penalty|gist_box_picksplit|gist_box_same|gist_box_union|" +
 
201
        "gist_circle_compress|gist_circle_consistent|gist_point_compress|" +
 
202
        "gist_point_consistent|gist_point_distance|gist_poly_compress|gist_poly_consistent|" +
 
203
        "gistbeginscan|gistbuild|gistbuildempty|gistbulkdelete|gistcostestimate|gistendscan|" +
 
204
        "gistgetbitmap|gistgettuple|gistinsert|gistmarkpos|gistoptions|gistrescan|gistrestrpos|" +
 
205
        "gistvacuumcleanup|gtsquery_compress|gtsquery_consistent|gtsquery_decompress|" +
 
206
        "gtsquery_penalty|gtsquery_picksplit|gtsquery_same|gtsquery_union|gtsvector_compress|" +
 
207
        "gtsvector_consistent|gtsvector_decompress|gtsvector_penalty|gtsvector_picksplit|" +
 
208
        "gtsvector_same|gtsvector_union|gtsvectorin|gtsvectorout|has_any_column_privilege|" +
 
209
        "has_column_privilege|has_database_privilege|has_foreign_data_wrapper_privilege|" +
 
210
        "has_function_privilege|has_language_privilege|has_schema_privilege|" +
 
211
        "has_sequence_privilege|has_server_privilege|has_table_privilege|" +
 
212
        "has_tablespace_privilege|hash_aclitem|hash_array|hash_numeric|hashbeginscan|" +
 
213
        "hashbpchar|hashbuild|hashbuildempty|hashbulkdelete|hashchar|hashcostestimate|" +
 
214
        "hashendscan|hashenum|hashfloat4|hashfloat8|hashgetbitmap|hashgettuple|hashinet|" +
 
215
        "hashinsert|hashint2|hashint2vector|hashint4|hashint8|hashmacaddr|hashmarkpos|hashname|" +
 
216
        "hashoid|hashoidvector|hashoptions|hashrescan|hashrestrpos|hashtext|hashvacuumcleanup|" +
 
217
        "hashvarlena|height|host|hostmask|iclikejoinsel|iclikesel|icnlikejoinsel|icnlikesel|" +
 
218
        "icregexeqjoinsel|icregexeqsel|icregexnejoinsel|icregexnesel|inet_client_addr|" +
 
219
        "inet_client_port|inet_in|inet_out|inet_recv|inet_send|inet_server_addr|" +
 
220
        "inet_server_port|inetand|inetmi|inetmi_int8|inetnot|inetor|inetpl|initcap|int2|int24div|" +
 
221
        "int24eq|int24ge|int24gt|int24le|int24lt|int24mi|int24mul|int24ne|int24pl|int28div|int28eq|" +
 
222
        "int28ge|int28gt|int28le|int28lt|int28mi|int28mul|int28ne|int28pl|int2_accum|" +
 
223
        "int2_avg_accum|int2_mul_cash|int2_sum|int2abs|int2and|int2div|int2eq|int2ge|int2gt|int2in|" +
 
224
        "int2larger|int2le|int2lt|int2mi|int2mod|int2mul|int2ne|int2not|int2or|int2out|int2pl|" +
 
225
        "int2recv|int2send|int2shl|int2shr|int2smaller|int2um|int2up|int2vectoreq|int2vectorin|" +
 
226
        "int2vectorout|int2vectorrecv|int2vectorsend|int2xor|int4|int42div|int42eq|int42ge|" +
 
227
        "int42gt|int42le|int42lt|int42mi|int42mul|int42ne|int42pl|int48div|int48eq|int48ge|int48gt|" +
 
228
        "int48le|int48lt|int48mi|int48mul|int48ne|int48pl|int4_accum|int4_avg_accum|int4_mul_cash|" +
 
229
        "int4_sum|int4abs|int4and|int4div|int4eq|int4ge|int4gt|int4in|int4inc|int4larger|int4le|" +
 
230
        "int4lt|int4mi|int4mod|int4mul|int4ne|int4not|int4or|int4out|int4pl|int4recv|int4send|" +
 
231
        "int4shl|int4shr|int4smaller|int4um|int4up|int4xor|int8|int82div|int82eq|int82ge|int82gt|" +
 
232
        "int82le|int82lt|int82mi|int82mul|int82ne|int82pl|int84div|int84eq|int84ge|int84gt|int84le|" +
 
233
        "int84lt|int84mi|int84mul|int84ne|int84pl|int8_accum|int8_avg|int8_avg_accum|int8_sum|" +
 
234
        "int8abs|int8and|int8div|int8eq|int8ge|int8gt|int8in|int8inc|int8inc_any|" +
 
235
        "int8inc_float8_float8|int8larger|int8le|int8lt|int8mi|int8mod|int8mul|int8ne|int8not|" +
 
236
        "int8or|int8out|int8pl|int8pl_inet|int8recv|int8send|int8shl|int8shr|int8smaller|int8um|" +
 
237
        "int8up|int8xor|integer_pl_date|inter_lb|inter_sb|inter_sl|internal_in|internal_out|" +
 
238
        "interval_accum|interval_avg|interval_cmp|interval_div|interval_eq|interval_ge|" +
 
239
        "interval_gt|interval_hash|interval_in|interval_larger|interval_le|interval_lt|" +
 
240
        "interval_mi|interval_mul|interval_ne|interval_out|interval_pl|interval_pl_date|" +
 
241
        "interval_pl_time|interval_pl_timestamp|interval_pl_timestamptz|interval_pl_timetz|" +
 
242
        "interval_recv|interval_send|interval_smaller|interval_um|intervaltypmodin|" +
 
243
        "intervaltypmodout|intinterval|isclosed|isfinite|ishorizontal|iso8859_1_to_utf8|" +
 
244
        "iso8859_to_utf8|iso_to_koi8r|iso_to_mic|iso_to_win1251|iso_to_win866|isopen|isparallel|" +
 
245
        "isperp|isvertical|johab_to_utf8|justify_days|justify_hours|justify_interval|" +
 
246
        "koi8r_to_iso|koi8r_to_mic|koi8r_to_utf8|koi8r_to_win1251|koi8r_to_win866|" +
 
247
        "koi8u_to_utf8|lag|language_handler_in|language_handler_out|last_value|lastval|" +
 
248
        "latin1_to_mic|latin2_to_mic|latin2_to_win1250|latin3_to_mic|latin4_to_mic|lead|left|" +
 
249
        "length|like|like_escape|likejoinsel|likesel|line|line_distance|line_eq|line_horizontal|" +
 
250
        "line_in|line_interpt|line_intersect|line_out|line_parallel|line_perp|line_recv|" +
 
251
        "line_send|line_vertical|ln|lo_close|lo_creat|lo_create|lo_export|lo_import|lo_lseek|" +
 
252
        "lo_open|lo_tell|lo_truncate|lo_unlink|log|loread|lower|lowrite|lpad|lseg|lseg_center|" +
 
253
        "lseg_distance|lseg_eq|lseg_ge|lseg_gt|lseg_horizontal|lseg_in|lseg_interpt|" +
 
254
        "lseg_intersect|lseg_le|lseg_length|lseg_lt|lseg_ne|lseg_out|lseg_parallel|lseg_perp|" +
 
255
        "lseg_recv|lseg_send|lseg_vertical|ltrim|macaddr_cmp|macaddr_eq|macaddr_ge|macaddr_gt|" +
 
256
        "macaddr_in|macaddr_le|macaddr_lt|macaddr_ne|macaddr_out|macaddr_recv|macaddr_send|" +
 
257
        "makeaclitem|masklen|max|md5|mic_to_ascii|mic_to_big5|mic_to_euc_cn|mic_to_euc_jp|" +
 
258
        "mic_to_euc_kr|mic_to_euc_tw|mic_to_iso|mic_to_koi8r|mic_to_latin1|mic_to_latin2|" +
 
259
        "mic_to_latin3|mic_to_latin4|mic_to_sjis|mic_to_win1250|mic_to_win1251|mic_to_win866|" +
 
260
        "min|mktinterval|mod|money|mul_d_interval|name|nameeq|namege|namegt|nameiclike|nameicnlike|" +
 
261
        "nameicregexeq|nameicregexne|namein|namele|namelike|namelt|namene|namenlike|nameout|" +
 
262
        "namerecv|nameregexeq|nameregexne|namesend|neqjoinsel|neqsel|netmask|network|network_cmp|" +
 
263
        "network_eq|network_ge|network_gt|network_le|network_lt|network_ne|network_sub|" +
 
264
        "network_subeq|network_sup|network_supeq|nextval|nlikejoinsel|nlikesel|notlike|now|" +
 
265
        "npoints|nth_value|ntile|numeric_abs|numeric_accum|numeric_add|numeric_avg|" +
 
266
        "numeric_avg_accum|numeric_cmp|numeric_div|numeric_div_trunc|numeric_eq|numeric_exp|" +
 
267
        "numeric_fac|numeric_ge|numeric_gt|numeric_in|numeric_inc|numeric_larger|numeric_le|" +
 
268
        "numeric_ln|numeric_log|numeric_lt|numeric_mod|numeric_mul|numeric_ne|numeric_out|" +
 
269
        "numeric_power|numeric_recv|numeric_send|numeric_smaller|numeric_sqrt|" +
 
270
        "numeric_stddev_pop|numeric_stddev_samp|numeric_sub|numeric_uminus|numeric_uplus|" +
 
271
        "numeric_var_pop|numeric_var_samp|numerictypmodin|numerictypmodout|numnode|" +
 
272
        "obj_description|octet_length|oid|oideq|oidge|oidgt|oidin|oidlarger|oidle|oidlt|oidne|oidout|" +
 
273
        "oidrecv|oidsend|oidsmaller|oidvectoreq|oidvectorge|oidvectorgt|oidvectorin|oidvectorle|" +
 
274
        "oidvectorlt|oidvectorne|oidvectorout|oidvectorrecv|oidvectorsend|oidvectortypes|on_pb|" +
 
275
        "on_pl|on_ppath|on_ps|on_sb|on_sl|opaque_in|opaque_out|overlaps|overlay|path|path_add|" +
 
276
        "path_add_pt|path_center|path_contain_pt|path_distance|path_div_pt|path_in|path_inter|" +
 
277
        "path_length|path_mul_pt|path_n_eq|path_n_ge|path_n_gt|path_n_le|path_n_lt|path_npoints|" +
 
278
        "path_out|path_recv|path_send|path_sub_pt|pclose|percent_rank|pg_advisory_lock|" +
 
279
        "pg_advisory_lock_shared|pg_advisory_unlock|pg_advisory_unlock_all|" +
 
280
        "pg_advisory_unlock_shared|pg_advisory_xact_lock|pg_advisory_xact_lock_shared|" +
 
281
        "pg_available_extension_versions|pg_available_extensions|pg_backend_pid|" +
 
282
        "pg_cancel_backend|pg_char_to_encoding|pg_client_encoding|pg_collation_is_visible|" +
 
283
        "pg_column_size|pg_conf_load_time|pg_conversion_is_visible|pg_create_restore_point|" +
 
284
        "pg_current_xlog_insert_location|pg_current_xlog_location|pg_cursor|pg_database_size|" +
 
285
        "pg_describe_object|pg_encoding_max_length|pg_encoding_to_char|" +
 
286
        "pg_extension_config_dump|pg_extension_update_paths|pg_function_is_visible|" +
 
287
        "pg_get_constraintdef|pg_get_expr|pg_get_function_arguments|" +
 
288
        "pg_get_function_identity_arguments|pg_get_function_result|pg_get_functiondef|" +
 
289
        "pg_get_indexdef|pg_get_keywords|pg_get_ruledef|pg_get_serial_sequence|" +
 
290
        "pg_get_triggerdef|pg_get_userbyid|pg_get_viewdef|pg_has_role|pg_indexes_size|" +
 
291
        "pg_is_in_recovery|pg_is_other_temp_schema|pg_is_xlog_replay_paused|" +
 
292
        "pg_last_xact_replay_timestamp|pg_last_xlog_receive_location|" +
 
293
        "pg_last_xlog_replay_location|pg_listening_channels|pg_lock_status|pg_ls_dir|" +
 
294
        "pg_my_temp_schema|pg_node_tree_in|pg_node_tree_out|pg_node_tree_recv|" +
 
295
        "pg_node_tree_send|pg_notify|pg_opclass_is_visible|pg_operator_is_visible|" +
 
296
        "pg_options_to_table|pg_postmaster_start_time|pg_prepared_statement|pg_prepared_xact|" +
 
297
        "pg_read_binary_file|pg_read_file|pg_relation_filenode|pg_relation_filepath|" +
 
298
        "pg_relation_size|pg_reload_conf|pg_rotate_logfile|pg_sequence_parameters|" +
 
299
        "pg_show_all_settings|pg_size_pretty|pg_sleep|pg_start_backup|pg_stat_clear_snapshot|" +
 
300
        "pg_stat_file|pg_stat_get_activity|pg_stat_get_analyze_count|" +
 
301
        "pg_stat_get_autoanalyze_count|pg_stat_get_autovacuum_count|" +
 
302
        "pg_stat_get_backend_activity|pg_stat_get_backend_activity_start|" +
 
303
        "pg_stat_get_backend_client_addr|pg_stat_get_backend_client_port|" +
 
304
        "pg_stat_get_backend_dbid|pg_stat_get_backend_idset|pg_stat_get_backend_pid|" +
 
305
        "pg_stat_get_backend_start|pg_stat_get_backend_userid|pg_stat_get_backend_waiting|" +
 
306
        "pg_stat_get_backend_xact_start|pg_stat_get_bgwriter_buf_written_checkpoints|" +
 
307
        "pg_stat_get_bgwriter_buf_written_clean|pg_stat_get_bgwriter_maxwritten_clean|" +
 
308
        "pg_stat_get_bgwriter_requested_checkpoints|pg_stat_get_bgwriter_stat_reset_time|" +
 
309
        "pg_stat_get_bgwriter_timed_checkpoints|pg_stat_get_blocks_fetched|" +
 
310
        "pg_stat_get_blocks_hit|pg_stat_get_buf_alloc|pg_stat_get_buf_fsync_backend|" +
 
311
        "pg_stat_get_buf_written_backend|pg_stat_get_db_blocks_fetched|" +
 
312
        "pg_stat_get_db_blocks_hit|pg_stat_get_db_conflict_all|" +
 
313
        "pg_stat_get_db_conflict_bufferpin|pg_stat_get_db_conflict_lock|" +
 
314
        "pg_stat_get_db_conflict_snapshot|pg_stat_get_db_conflict_startup_deadlock|" +
 
315
        "pg_stat_get_db_conflict_tablespace|pg_stat_get_db_numbackends|" +
 
316
        "pg_stat_get_db_stat_reset_time|pg_stat_get_db_tuples_deleted|" +
 
317
        "pg_stat_get_db_tuples_fetched|pg_stat_get_db_tuples_inserted|" +
 
318
        "pg_stat_get_db_tuples_returned|pg_stat_get_db_tuples_updated|" +
 
319
        "pg_stat_get_db_xact_commit|pg_stat_get_db_xact_rollback|pg_stat_get_dead_tuples|" +
 
320
        "pg_stat_get_function_calls|pg_stat_get_function_self_time|" +
 
321
        "pg_stat_get_function_time|pg_stat_get_last_analyze_time|" +
 
322
        "pg_stat_get_last_autoanalyze_time|pg_stat_get_last_autovacuum_time|" +
 
323
        "pg_stat_get_last_vacuum_time|pg_stat_get_live_tuples|pg_stat_get_numscans|" +
 
324
        "pg_stat_get_tuples_deleted|pg_stat_get_tuples_fetched|" +
 
325
        "pg_stat_get_tuples_hot_updated|pg_stat_get_tuples_inserted|" +
 
326
        "pg_stat_get_tuples_returned|pg_stat_get_tuples_updated|pg_stat_get_vacuum_count|" +
 
327
        "pg_stat_get_wal_senders|pg_stat_get_xact_blocks_fetched|" +
 
328
        "pg_stat_get_xact_blocks_hit|pg_stat_get_xact_function_calls|" +
 
329
        "pg_stat_get_xact_function_self_time|pg_stat_get_xact_function_time|" +
 
330
        "pg_stat_get_xact_numscans|pg_stat_get_xact_tuples_deleted|" +
 
331
        "pg_stat_get_xact_tuples_fetched|pg_stat_get_xact_tuples_hot_updated|" +
 
332
        "pg_stat_get_xact_tuples_inserted|pg_stat_get_xact_tuples_returned|" +
 
333
        "pg_stat_get_xact_tuples_updated|pg_stat_reset|pg_stat_reset_shared|" +
 
334
        "pg_stat_reset_single_function_counters|pg_stat_reset_single_table_counters|" +
 
335
        "pg_stop_backup|pg_switch_xlog|pg_table_is_visible|pg_table_size|" +
 
336
        "pg_tablespace_databases|pg_tablespace_size|pg_terminate_backend|pg_timezone_abbrevs|" +
 
337
        "pg_timezone_names|pg_total_relation_size|pg_try_advisory_lock|" +
 
338
        "pg_try_advisory_lock_shared|pg_try_advisory_xact_lock|" +
 
339
        "pg_try_advisory_xact_lock_shared|pg_ts_config_is_visible|pg_ts_dict_is_visible|" +
 
340
        "pg_ts_parser_is_visible|pg_ts_template_is_visible|pg_type_is_visible|pg_typeof|" +
 
341
        "pg_xlog_replay_pause|pg_xlog_replay_resume|pg_xlogfile_name|pg_xlogfile_name_offset|" +
 
342
        "pi|plainto_tsquery|plpgsql_call_handler|plpgsql_inline_handler|plpgsql_validator|" +
 
343
        "point|point_above|point_add|point_below|point_distance|point_div|point_eq|point_horiz|" +
 
344
        "point_in|point_left|point_mul|point_ne|point_out|point_recv|point_right|point_send|" +
 
345
        "point_sub|point_vert|poly_above|poly_below|poly_center|poly_contain|poly_contain_pt|" +
 
346
        "poly_contained|poly_distance|poly_in|poly_left|poly_npoints|poly_out|poly_overabove|" +
 
347
        "poly_overbelow|poly_overlap|poly_overleft|poly_overright|poly_recv|poly_right|" +
 
348
        "poly_same|poly_send|polygon|popen|position|positionjoinsel|positionsel|" +
 
349
        "postgresql_fdw_validator|pow|power|prsd_end|prsd_headline|prsd_lextype|prsd_nexttoken|" +
 
350
        "prsd_start|pt_contained_circle|pt_contained_poly|query_to_xml|" +
 
351
        "query_to_xml_and_xmlschema|query_to_xmlschema|querytree|quote_ident|quote_literal|" +
 
352
        "quote_nullable|radians|radius|random|rank|record_eq|record_ge|record_gt|record_in|" +
 
353
        "record_le|record_lt|record_ne|record_out|record_recv|record_send|regclass|regclassin|" +
 
354
        "regclassout|regclassrecv|regclasssend|regconfigin|regconfigout|regconfigrecv|" +
 
355
        "regconfigsend|regdictionaryin|regdictionaryout|regdictionaryrecv|regdictionarysend|" +
 
356
        "regexeqjoinsel|regexeqsel|regexnejoinsel|regexnesel|regexp_matches|regexp_replace|" +
 
357
        "regexp_split_to_array|regexp_split_to_table|regoperatorin|regoperatorout|" +
 
358
        "regoperatorrecv|regoperatorsend|regoperin|regoperout|regoperrecv|regopersend|" +
 
359
        "regprocedurein|regprocedureout|regprocedurerecv|regproceduresend|regprocin|regprocout|" +
 
360
        "regprocrecv|regprocsend|regr_avgx|regr_avgy|regr_count|regr_intercept|regr_r2|" +
 
361
        "regr_slope|regr_sxx|regr_sxy|regr_syy|regtypein|regtypeout|regtyperecv|regtypesend|" +
 
362
        "reltime|reltimeeq|reltimege|reltimegt|reltimein|reltimele|reltimelt|reltimene|reltimeout|" +
 
363
        "reltimerecv|reltimesend|repeat|replace|reverse|right|round|row_number|rpad|rtrim|" +
 
364
        "scalargtjoinsel|scalargtsel|scalarltjoinsel|scalarltsel|schema_to_xml|" +
 
365
        "schema_to_xml_and_xmlschema|schema_to_xmlschema|session_user|set_bit|set_byte|" +
 
366
        "set_config|set_masklen|setseed|setval|setweight|shell_in|shell_out|" +
 
367
        "shift_jis_2004_to_euc_jis_2004|shift_jis_2004_to_utf8|shobj_description|sign|" +
 
368
        "similar_escape|sin|sjis_to_euc_jp|sjis_to_mic|sjis_to_utf8|slope|smgreq|smgrin|smgrne|" +
 
369
        "smgrout|split_part|sqrt|statement_timestamp|stddev|stddev_pop|stddev_samp|string_agg|" +
 
370
        "string_agg_finalfn|string_agg_transfn|string_to_array|strip|strpos|substr|substring|sum|" +
 
371
        "suppress_redundant_updates_trigger|table_to_xml|table_to_xml_and_xmlschema|" +
 
372
        "table_to_xmlschema|tan|text|text_ge|text_gt|text_larger|text_le|text_lt|text_pattern_ge|" +
 
373
        "text_pattern_gt|text_pattern_le|text_pattern_lt|text_smaller|textanycat|textcat|texteq|" +
 
374
        "texticlike|texticnlike|texticregexeq|texticregexne|textin|textlen|textlike|textne|" +
 
375
        "textnlike|textout|textrecv|textregexeq|textregexne|textsend|thesaurus_init|" +
 
376
        "thesaurus_lexize|tideq|tidge|tidgt|tidin|tidlarger|tidle|tidlt|tidne|tidout|tidrecv|tidsend|" +
 
377
        "tidsmaller|time_cmp|time_eq|time_ge|time_gt|time_hash|time_in|time_larger|time_le|time_lt|" +
 
378
        "time_mi_interval|time_mi_time|time_ne|time_out|time_pl_interval|time_recv|time_send|" +
 
379
        "time_smaller|timedate_pl|timemi|timenow|timeofday|timepl|timestamp_cmp|" +
 
380
        "timestamp_cmp_date|timestamp_cmp_timestamptz|timestamp_eq|timestamp_eq_date|" +
 
381
        "timestamp_eq_timestamptz|timestamp_ge|timestamp_ge_date|timestamp_ge_timestamptz|" +
 
382
        "timestamp_gt|timestamp_gt_date|timestamp_gt_timestamptz|timestamp_hash|timestamp_in|" +
 
383
        "timestamp_larger|timestamp_le|timestamp_le_date|timestamp_le_timestamptz|" +
 
384
        "timestamp_lt|timestamp_lt_date|timestamp_lt_timestamptz|timestamp_mi|" +
 
385
        "timestamp_mi_interval|timestamp_ne|timestamp_ne_date|timestamp_ne_timestamptz|" +
 
386
        "timestamp_out|timestamp_pl_interval|timestamp_recv|timestamp_send|timestamp_smaller|" +
 
387
        "timestamptypmodin|timestamptypmodout|timestamptz_cmp|timestamptz_cmp_date|" +
 
388
        "timestamptz_cmp_timestamp|timestamptz_eq|timestamptz_eq_date|" +
 
389
        "timestamptz_eq_timestamp|timestamptz_ge|timestamptz_ge_date|" +
 
390
        "timestamptz_ge_timestamp|timestamptz_gt|timestamptz_gt_date|" +
 
391
        "timestamptz_gt_timestamp|timestamptz_in|timestamptz_larger|timestamptz_le|" +
 
392
        "timestamptz_le_date|timestamptz_le_timestamp|timestamptz_lt|timestamptz_lt_date|" +
 
393
        "timestamptz_lt_timestamp|timestamptz_mi|timestamptz_mi_interval|timestamptz_ne|" +
 
394
        "timestamptz_ne_date|timestamptz_ne_timestamp|timestamptz_out|" +
 
395
        "timestamptz_pl_interval|timestamptz_recv|timestamptz_send|timestamptz_smaller|" +
 
396
        "timestamptztypmodin|timestamptztypmodout|timetypmodin|timetypmodout|timetz_cmp|" +
 
397
        "timetz_eq|timetz_ge|timetz_gt|timetz_hash|timetz_in|timetz_larger|timetz_le|timetz_lt|" +
 
398
        "timetz_mi_interval|timetz_ne|timetz_out|timetz_pl_interval|timetz_recv|timetz_send|" +
 
399
        "timetz_smaller|timetzdate_pl|timetztypmodin|timetztypmodout|timezone|tinterval|" +
 
400
        "tintervalct|tintervalend|tintervaleq|tintervalge|tintervalgt|tintervalin|tintervalle|" +
 
401
        "tintervalleneq|tintervallenge|tintervallengt|tintervallenle|tintervallenlt|" +
 
402
        "tintervallenne|tintervallt|tintervalne|tintervalout|tintervalov|tintervalrecv|" +
 
403
        "tintervalrel|tintervalsame|tintervalsend|tintervalstart|to_ascii|to_char|to_date|to_hex|" +
 
404
        "to_number|to_timestamp|to_tsquery|to_tsvector|transaction_timestamp|translate|" +
 
405
        "trigger_in|trigger_out|trunc|ts_debug|ts_headline|ts_lexize|ts_match_qv|ts_match_tq|" +
 
406
        "ts_match_tt|ts_match_vq|ts_parse|ts_rank|ts_rank_cd|ts_rewrite|ts_stat|ts_token_type|" +
 
407
        "ts_typanalyze|tsmatchjoinsel|tsmatchsel|tsq_mcontained|tsq_mcontains|tsquery_and|" +
 
408
        "tsquery_cmp|tsquery_eq|tsquery_ge|tsquery_gt|tsquery_le|tsquery_lt|tsquery_ne|" +
 
409
        "tsquery_not|tsquery_or|tsqueryin|tsqueryout|tsqueryrecv|tsquerysend|tsvector_cmp|" +
 
410
        "tsvector_concat|tsvector_eq|tsvector_ge|tsvector_gt|tsvector_le|tsvector_lt|" +
 
411
        "tsvector_ne|tsvector_update_trigger|tsvector_update_trigger_column|tsvectorin|" +
 
412
        "tsvectorout|tsvectorrecv|tsvectorsend|txid_current|txid_current_snapshot|" +
 
413
        "txid_snapshot_in|txid_snapshot_out|txid_snapshot_recv|txid_snapshot_send|" +
 
414
        "txid_snapshot_xip|txid_snapshot_xmax|txid_snapshot_xmin|txid_visible_in_snapshot|" +
 
415
        "uhc_to_utf8|unique_key_recheck|unknownin|unknownout|unknownrecv|unknownsend|unnest|" +
 
416
        "upper|utf8_to_ascii|utf8_to_big5|utf8_to_euc_cn|utf8_to_euc_jis_2004|utf8_to_euc_jp|" +
 
417
        "utf8_to_euc_kr|utf8_to_euc_tw|utf8_to_gb18030|utf8_to_gbk|utf8_to_iso8859|" +
 
418
        "utf8_to_iso8859_1|utf8_to_johab|utf8_to_koi8r|utf8_to_koi8u|utf8_to_shift_jis_2004|" +
 
419
        "utf8_to_sjis|utf8_to_uhc|utf8_to_win|uuid_cmp|uuid_eq|uuid_ge|uuid_gt|uuid_hash|uuid_in|" +
 
420
        "uuid_le|uuid_lt|uuid_ne|uuid_out|uuid_recv|uuid_send|var_pop|var_samp|varbit_in|" +
 
421
        "varbit_out|varbit_recv|varbit_send|varbitcmp|varbiteq|varbitge|varbitgt|varbitle|" +
 
422
        "varbitlt|varbitne|varbittypmodin|varbittypmodout|varcharin|varcharout|varcharrecv|" +
 
423
        "varcharsend|varchartypmodin|varchartypmodout|variance|version|void_in|void_out|" +
 
424
        "void_recv|void_send|width|width_bucket|win1250_to_latin2|win1250_to_mic|win1251_to_iso|" +
 
425
        "win1251_to_koi8r|win1251_to_mic|win1251_to_win866|win866_to_iso|win866_to_koi8r|" +
 
426
        "win866_to_mic|win866_to_win1251|win_to_utf8|xideq|xideqint4|xidin|xidout|xidrecv|xidsend|" +
 
427
        "xml|xml_in|xml_is_well_formed|xml_is_well_formed_content|xml_is_well_formed_document|" +
 
428
        "xml_out|xml_recv|xml_send|xmlagg|xmlcomment|xmlconcat2|xmlexists|xmlvalidate|xpath|" +
 
429
        "xpath_exists"
 
430
    );
 
431
 
 
432
    var keywordMapper = this.createKeywordMapper({
 
433
        "support.function": builtinFunctions,
 
434
        "keyword": keywords
 
435
    }, "identifier", true);
 
436
 
 
437
 
 
438
    var sqlRules = [
 
439
        {
 
440
            token : "string", // single line string -- assume dollar strings if multi-line for now
 
441
            regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
 
442
        }, {
 
443
            token : "variable.language", // pg identifier
 
444
            regex : '".*?"'
 
445
        }, {
 
446
            token : "constant.numeric", // float
 
447
            regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"
 
448
        }, {
 
449
            token : keywordMapper,
 
450
              regex : "[a-zA-Z_][a-zA-Z0-9_$]*\\b" // TODO - Unicode in identifiers
 
451
          }, {
 
452
              token : "keyword.operator",
 
453
              regex : "!|!!|!~|!~\\*|!~~|!~~\\*|#|##|#<|#<=|#<>|#=|#>|#>=|%|\\&|\\&\\&|\\&<|\\&<\\||\\&>|\\*|\\+|" +
 
454
                      "\\-|/|<|<#>|<\\->|<<|<<=|<<\\||<=|<>|<\\?>|<@|<\\^|=|>|>=|>>|>>=|>\\^|\\?#|\\?\\-|\\?\\-\\||" +
 
455
                      "\\?\\||\\?\\|\\||@|@\\-@|@>|@@|@@@|\\^|\\||\\|\\&>|\\|/|\\|>>|\\|\\||\\|\\|/|~|~\\*|~<=~|~<~|" +
 
456
                      "~=|~>=~|~>~|~~|~~\\*"
 
457
          }, {
 
458
              token : "paren.lparen",
 
459
              regex : "[\\(]"
 
460
          }, {
 
461
              token : "paren.rparen",
 
462
              regex : "[\\)]"
 
463
          }, {
 
464
              token : "text",
 
465
              regex : "\\s+"
 
466
          }
 
467
    ];
 
468
 
 
469
 
 
470
    this.$rules = {
 
471
        "start" : [
 
472
            {
 
473
                token : "comment",
 
474
                regex : "--.*$"
 
475
            },
 
476
            DocCommentHighlightRules.getStartRule("doc-start"),
 
477
            {
 
478
                token : "comment", // multi-line comment
 
479
                regex : "\\/\\*",
 
480
                next : "comment"
 
481
            },{
 
482
                token : "keyword.statementBegin",
 
483
                regex : "^[a-zA-Z]+", // Could enumerate starting keywords but this allows things to work when new statements are added.
 
484
                next : "statement"
 
485
            },{
 
486
                token : "support.buildin", // psql directive
 
487
                regex : "^\\\\[\\S]+.*$"
 
488
            }
 
489
        ],
 
490
 
 
491
        "statement" : [
 
492
            {
 
493
                token : "comment",
 
494
                regex : "--.*$"
 
495
            }, {
 
496
                token : "comment", // multi-line comment
 
497
                regex : "\\/\\*",
 
498
                next : "commentStatement"
 
499
            }, {
 
500
                token : "statementEnd",
 
501
                regex : ";",
 
502
                next : "start"
 
503
            }, {
 
504
                token : "string", // perl, python, tcl are in the pg default dist (no tcl highlighter)
 
505
                regex : "\\$perl\\$",
 
506
                next : "perl-start"
 
507
            }, {
 
508
                token : "string",
 
509
                regex : "\\$python\\$",
 
510
                next : "python-start"
 
511
            },{
 
512
                token : "string",
 
513
                regex : "\\$[\\w_0-9]*\\$$", // dollar quote at the end of a line
 
514
                next : "dollarSql"
 
515
            }, {
 
516
                token : "string",
 
517
                regex : "\\$[\\w_0-9]*\\$",
 
518
                next : "dollarStatementString"
 
519
            }
 
520
        ].concat(sqlRules),
 
521
 
 
522
        "dollarSql" : [
 
523
            {
 
524
                token : "comment",
 
525
                regex : "--.*$"
 
526
            }, {
 
527
                token : "comment", // multi-line comment
 
528
                regex : "\\/\\*",
 
529
                next : "commentDollarSql"
 
530
            }, {
 
531
                token : "string", // end quoting with dollar at the start of a line
 
532
                regex : "^\\$[\\w_0-9]*\\$",
 
533
                next : "statement"
 
534
            }, {
 
535
                token : "string",
 
536
                regex : "\\$[\\w_0-9]*\\$",
 
537
                next : "dollarSqlString"
 
538
            }
 
539
        ].concat(sqlRules),
 
540
 
 
541
        "comment" : [
 
542
            {
 
543
                token : "comment", // closing comment
 
544
                regex : ".*?\\*\\/",
 
545
                next : "start"
 
546
            }, {
 
547
                token : "comment", // comment spanning whole line
 
548
                regex : ".+"
 
549
            }
 
550
        ],
 
551
 
 
552
        "commentStatement" : [
 
553
            {
 
554
                token : "comment", // closing comment
 
555
                regex : ".*?\\*\\/",
 
556
                next : "statement"
 
557
            }, {
 
558
                token : "comment", // comment spanning whole line
 
559
                regex : ".+"
 
560
            }
 
561
        ],
 
562
 
 
563
        "commentDollarSql" : [
 
564
            {
 
565
                token : "comment", // closing comment
 
566
                regex : ".*?\\*\\/",
 
567
                next : "dollarSql"
 
568
            }, {
 
569
                token : "comment", // comment spanning whole line
 
570
                regex : ".+"
 
571
            }
 
572
        ],
 
573
 
 
574
        "dollarStatementString" : [
 
575
            {
 
576
                token : "string", // closing dollarstring
 
577
                regex : ".*?\\$[\\w_0-9]*\\$",
 
578
                next : "statement"
 
579
            }, {
 
580
                token : "string", // dollarstring spanning whole line
 
581
                regex : ".+"
 
582
            }
 
583
        ],
 
584
 
 
585
        "dollarSqlString" : [
 
586
            {
 
587
                token : "string", // closing dollarstring
 
588
                regex : ".*?\\$[\\w_0-9]*\\$",
 
589
                next : "dollarSql"
 
590
            }, {
 
591
                token : "string", // dollarstring spanning whole line
 
592
                regex : ".+"
 
593
            }
 
594
        ]
 
595
    };
 
596
 
 
597
    this.embedRules(DocCommentHighlightRules, "doc-", [ DocCommentHighlightRules.getEndRule("start") ]);
 
598
    this.embedRules(PerlHighlightRules, "perl-", [{token : "string", regex : "\\$perl\\$", next : "statement"}]);
 
599
    this.embedRules(PythonHighlightRules, "python-", [{token : "string", regex : "\\$python\\$", next : "statement"}]);
 
600
};
 
601
 
 
602
oop.inherits(PgsqlHighlightRules, TextHighlightRules);
 
603
 
 
604
exports.PgsqlHighlightRules = PgsqlHighlightRules;
 
605
});
 
606
 
 
607
define('ace/mode/doc_comment_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text_highlight_rules'], function(require, exports, module) {
 
608
 
 
609
 
 
610
var oop = require("../lib/oop");
 
611
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
 
612
 
 
613
var DocCommentHighlightRules = function() {
 
614
 
 
615
    this.$rules = {
 
616
        "start" : [ {
 
617
            token : "comment.doc.tag",
 
618
            regex : "@[\\w\\d_]+" // TODO: fix email addresses
 
619
        }, {
 
620
            token : "comment.doc.tag",
 
621
            regex : "\\bTODO\\b"
 
622
        }, {
 
623
            defaultToken : "comment.doc"
 
624
        }]
 
625
    };
 
626
};
 
627
 
 
628
oop.inherits(DocCommentHighlightRules, TextHighlightRules);
 
629
 
 
630
DocCommentHighlightRules.getStartRule = function(start) {
 
631
    return {
 
632
        token : "comment.doc", // doc comment
 
633
        regex : "\\/\\*(?=\\*)",
 
634
        next  : start
 
635
    };
 
636
};
 
637
 
 
638
DocCommentHighlightRules.getEndRule = function (start) {
 
639
    return {
 
640
        token : "comment.doc", // closing comment
 
641
        regex : "\\*\\/",
 
642
        next  : start
 
643
    };
 
644
};
 
645
 
 
646
 
 
647
exports.DocCommentHighlightRules = DocCommentHighlightRules;
 
648
 
 
649
});
 
650
 
 
651
define('ace/mode/perl_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text_highlight_rules'], function(require, exports, module) {
 
652
 
 
653
 
 
654
var oop = require("../lib/oop");
 
655
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
 
656
 
 
657
var PerlHighlightRules = function() {
 
658
 
 
659
    var keywords = (
 
660
        "base|constant|continue|else|elsif|for|foreach|format|goto|if|last|local|my|next|" +
 
661
         "no|package|parent|redo|require|scalar|sub|unless|until|while|use|vars"
 
662
    );
 
663
 
 
664
    var buildinConstants = ("ARGV|ENV|INC|SIG");
 
665
 
 
666
    var builtinFunctions = (
 
667
        "getprotobynumber|getprotobyname|getservbyname|gethostbyaddr|" +
 
668
         "gethostbyname|getservbyport|getnetbyaddr|getnetbyname|getsockname|" +
 
669
         "getpeername|setpriority|getprotoent|setprotoent|getpriority|" +
 
670
         "endprotoent|getservent|setservent|endservent|sethostent|socketpair|" +
 
671
         "getsockopt|gethostent|endhostent|setsockopt|setnetent|quotemeta|" +
 
672
         "localtime|prototype|getnetent|endnetent|rewinddir|wantarray|getpwuid|" +
 
673
         "closedir|getlogin|readlink|endgrent|getgrgid|getgrnam|shmwrite|" +
 
674
         "shutdown|readline|endpwent|setgrent|readpipe|formline|truncate|" +
 
675
         "dbmclose|syswrite|setpwent|getpwnam|getgrent|getpwent|ucfirst|sysread|" +
 
676
         "setpgrp|shmread|sysseek|sysopen|telldir|defined|opendir|connect|" +
 
677
         "lcfirst|getppid|binmode|syscall|sprintf|getpgrp|readdir|seekdir|" +
 
678
         "waitpid|reverse|unshift|symlink|dbmopen|semget|msgrcv|rename|listen|" +
 
679
         "chroot|msgsnd|shmctl|accept|unpack|exists|fileno|shmget|system|" +
 
680
         "unlink|printf|gmtime|msgctl|semctl|values|rindex|substr|splice|" +
 
681
         "length|msgget|select|socket|return|caller|delete|alarm|ioctl|index|" +
 
682
         "undef|lstat|times|srand|chown|fcntl|close|write|umask|rmdir|study|" +
 
683
         "sleep|chomp|untie|print|utime|mkdir|atan2|split|crypt|flock|chmod|" +
 
684
         "BEGIN|bless|chdir|semop|shift|reset|link|stat|chop|grep|fork|dump|" +
 
685
         "join|open|tell|pipe|exit|glob|warn|each|bind|sort|pack|eval|push|" +
 
686
         "keys|getc|kill|seek|sqrt|send|wait|rand|tied|read|time|exec|recv|" +
 
687
         "eof|chr|int|ord|exp|pos|pop|sin|log|abs|oct|hex|tie|cos|vec|END|ref|" +
 
688
         "map|die|uc|lc|do"
 
689
    );
 
690
 
 
691
    var keywordMapper = this.createKeywordMapper({
 
692
        "keyword": keywords,
 
693
        "constant.language": buildinConstants,
 
694
        "support.function": builtinFunctions
 
695
    }, "identifier");
 
696
 
 
697
    this.$rules = {
 
698
        "start" : [
 
699
            {
 
700
                token : "comment",
 
701
                regex : "#.*$"
 
702
            }, {
 
703
                token : "comment.doc",
 
704
                regex : "^=(?:begin|item)\\b",
 
705
                next : "block_comment"
 
706
            }, {
 
707
                token : "string.regexp",
 
708
                regex : "[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"
 
709
            }, {
 
710
                token : "string", // single line
 
711
                regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
 
712
            }, {
 
713
                token : "string", // multi line string start
 
714
                regex : '["].*\\\\$',
 
715
                next : "qqstring"
 
716
            }, {
 
717
                token : "string", // single line
 
718
                regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
 
719
            }, {
 
720
                token : "string", // multi line string start
 
721
                regex : "['].*\\\\$",
 
722
                next : "qstring"
 
723
            }, {
 
724
                token : "constant.numeric", // hex
 
725
                regex : "0x[0-9a-fA-F]+\\b"
 
726
            }, {
 
727
                token : "constant.numeric", // float
 
728
                regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"
 
729
            }, {
 
730
                token : keywordMapper,
 
731
                regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b"
 
732
            }, {
 
733
                token : "keyword.operator",
 
734
                regex : "\\.\\.\\.|\\|\\|=|>>=|<<=|<=>|&&=|=>|!~|\\^=|&=|\\|=|\\.=|x=|%=|\\/=|\\*=|\\-=|\\+=|=~|\\*\\*|\\-\\-|\\.\\.|\\|\\||&&|\\+\\+|\\->|!=|==|>=|<=|>>|<<|,|=|\\?\\:|\\^|\\||x|%|\\/|\\*|<|&|\\\\|~|!|>|\\.|\\-|\\+|\\-C|\\-b|\\-S|\\-u|\\-t|\\-p|\\-l|\\-d|\\-f|\\-g|\\-s|\\-z|\\-k|\\-e|\\-O|\\-T|\\-B|\\-M|\\-A|\\-X|\\-W|\\-c|\\-R|\\-o|\\-x|\\-w|\\-r|\\b(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|xor)"
 
735
            }, {
 
736
                token : "lparen",
 
737
                regex : "[[({]"
 
738
            }, {
 
739
                token : "rparen",
 
740
                regex : "[\\])}]"
 
741
            }, {
 
742
                token : "text",
 
743
                regex : "\\s+"
 
744
            }
 
745
        ],
 
746
        "qqstring" : [
 
747
            {
 
748
                token : "string",
 
749
                regex : '(?:(?:\\\\.)|(?:[^"\\\\]))*?"',
 
750
                next : "start"
 
751
            }, {
 
752
                token : "string",
 
753
                regex : '.+'
 
754
            }
 
755
        ],
 
756
        "qstring" : [
 
757
            {
 
758
                token : "string",
 
759
                regex : "(?:(?:\\\\.)|(?:[^'\\\\]))*?'",
 
760
                next : "start"
 
761
            }, {
 
762
                token : "string",
 
763
                regex : '.+'
 
764
            }
 
765
        ],
 
766
        "block_comment": [
 
767
            {
 
768
                token: "comment.doc", 
 
769
                regex: "^=cut\\b",
 
770
                next: "start"
 
771
            },
 
772
            {
 
773
                defaultToken: "comment.doc"
 
774
            }
 
775
        ]
 
776
    };
 
777
};
 
778
 
 
779
oop.inherits(PerlHighlightRules, TextHighlightRules);
 
780
 
 
781
exports.PerlHighlightRules = PerlHighlightRules;
 
782
});
 
783
 
 
784
define('ace/mode/python_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text_highlight_rules'], function(require, exports, module) {
 
785
 
 
786
 
 
787
var oop = require("../lib/oop");
 
788
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
 
789
 
 
790
var PythonHighlightRules = function() {
 
791
 
 
792
    var keywords = (
 
793
        "and|as|assert|break|class|continue|def|del|elif|else|except|exec|" +
 
794
        "finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|" +
 
795
        "raise|return|try|while|with|yield"
 
796
    );
 
797
 
 
798
    var builtinConstants = (
 
799
        "True|False|None|NotImplemented|Ellipsis|__debug__"
 
800
    );
 
801
 
 
802
    var builtinFunctions = (
 
803
        "abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|" +
 
804
        "eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|" +
 
805
        "binfile|iter|property|tuple|bool|filter|len|range|type|bytearray|" +
 
806
        "float|list|raw_input|unichr|callable|format|locals|reduce|unicode|" +
 
807
        "chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|" +
 
808
        "cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|" +
 
809
        "__import__|complex|hash|min|set|apply|delattr|help|next|setattr|" +
 
810
        "buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern"
 
811
    );
 
812
    var keywordMapper = this.createKeywordMapper({
 
813
        "invalid.deprecated": "debugger",
 
814
        "support.function": builtinFunctions,
 
815
        "constant.language": builtinConstants,
 
816
        "keyword": keywords
 
817
    }, "identifier");
 
818
 
 
819
    var strPre = "(?:r|u|ur|R|U|UR|Ur|uR)?";
 
820
 
 
821
    var decimalInteger = "(?:(?:[1-9]\\d*)|(?:0))";
 
822
    var octInteger = "(?:0[oO]?[0-7]+)";
 
823
    var hexInteger = "(?:0[xX][\\dA-Fa-f]+)";
 
824
    var binInteger = "(?:0[bB][01]+)";
 
825
    var integer = "(?:" + decimalInteger + "|" + octInteger + "|" + hexInteger + "|" + binInteger + ")";
 
826
 
 
827
    var exponent = "(?:[eE][+-]?\\d+)";
 
828
    var fraction = "(?:\\.\\d+)";
 
829
    var intPart = "(?:\\d+)";
 
830
    var pointFloat = "(?:(?:" + intPart + "?" + fraction + ")|(?:" + intPart + "\\.))";
 
831
    var exponentFloat = "(?:(?:" + pointFloat + "|" +  intPart + ")" + exponent + ")";
 
832
    var floatNumber = "(?:" + exponentFloat + "|" + pointFloat + ")";
 
833
 
 
834
    this.$rules = {
 
835
        "start" : [ {
 
836
            token : "comment",
 
837
            regex : "#.*$"
 
838
        }, {
 
839
            token : "string",           // """ string
 
840
            regex : strPre + '"{3}(?:[^\\\\]|\\\\.)*?"{3}'
 
841
        }, {
 
842
            token : "string",           // multi line """ string start
 
843
            regex : strPre + '"{3}.*$',
 
844
            next : "qqstring"
 
845
        }, {
 
846
            token : "string",           // " string
 
847
            regex : strPre + '"(?:[^\\\\]|\\\\.)*?"'
 
848
        }, {
 
849
            token : "string",           // ''' string
 
850
            regex : strPre + "'{3}(?:[^\\\\]|\\\\.)*?'{3}"
 
851
        }, {
 
852
            token : "string",           // multi line ''' string start
 
853
            regex : strPre + "'{3}.*$",
 
854
            next : "qstring"
 
855
        }, {
 
856
            token : "string",           // ' string
 
857
            regex : strPre + "'(?:[^\\\\]|\\\\.)*?'"
 
858
        }, {
 
859
            token : "constant.numeric", // imaginary
 
860
            regex : "(?:" + floatNumber + "|\\d+)[jJ]\\b"
 
861
        }, {
 
862
            token : "constant.numeric", // float
 
863
            regex : floatNumber
 
864
        }, {
 
865
            token : "constant.numeric", // long integer
 
866
            regex : integer + "[lL]\\b"
 
867
        }, {
 
868
            token : "constant.numeric", // integer
 
869
            regex : integer + "\\b"
 
870
        }, {
 
871
            token : keywordMapper,
 
872
            regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b"
 
873
        }, {
 
874
            token : "keyword.operator",
 
875
            regex : "\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|%|<<|>>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|="
 
876
        }, {
 
877
            token : "paren.lparen",
 
878
            regex : "[\\[\\(\\{]"
 
879
        }, {
 
880
            token : "paren.rparen",
 
881
            regex : "[\\]\\)\\}]"
 
882
        }, {
 
883
            token : "text",
 
884
            regex : "\\s+"
 
885
        } ],
 
886
        "qqstring" : [ {
 
887
            token : "string", // multi line """ string end
 
888
            regex : '(?:[^\\\\]|\\\\.)*?"{3}',
 
889
            next : "start"
 
890
        }, {
 
891
            token : "string",
 
892
            regex : '.+'
 
893
        } ],
 
894
        "qstring" : [ {
 
895
            token : "string",  // multi line ''' string end
 
896
            regex : "(?:[^\\\\]|\\\\.)*?'{3}",
 
897
            next : "start"
 
898
        }, {
 
899
            token : "string",
 
900
            regex : '.+'
 
901
        } ]
 
902
    };
 
903
};
 
904
 
 
905
oop.inherits(PythonHighlightRules, TextHighlightRules);
 
906
 
 
907
exports.PythonHighlightRules = PythonHighlightRules;
 
908
});