<filetype binary="false" default_extension="cache" description="P4GL source files" name="P4GL files">
  <highlighting>
    <options>
      <option name="LINE_COMMENT" value="//" />
      <option name="COMMENT_START" value="/*" />
      <option name="COMMENT_END" value="*/" />
      <option name="HEX_PREFIX" value="" />
      <option name="NUM_POSTFIXES" value="" />
      <option name="HAS_BRACES" value="true" />
      <option name="HAS_BRACKETS" value="true" />
      <option name="HAS_PARENS" value="true" />
    </options>
    <keywords keywords="::;add;alert-box;and;append;application;area;as;asc;ascending;assign;at;base-key;before-table;bind;blob;block-level;buffer-compare;buffer-copy;by;by-reference;by-value;case;case-sensitive;choose;clob;clob-codepage;clob-collation;clob-type;close;color;column-label;connect;constructor;contains;copy-lob;cpstream;crc;create;current;cycle-on-limit;data-relation;database;decimals;def;default;define;delete;desc;descending;description;dir;disable;disconnect;display;do;dos;down;dump;dump-name;each;else;empty;enable;end;enter;eq;error;except;exclusive-lock;export;extent;field;field-trigger;file;file-info;find;first;font;for;form;format;frame;from;function;get;get-first;get-key-value;get-next;global;gt;gte;header;if;in;increment;index;index-field;init;initial;input;input-output;insert;key;keys;label;last;leave;like;load;lt;lte;mandatory;matches;max-val;max-width;message;method;min-val;ne;new;next;no-box;no-error;no-label;no-labels;no-lock;no-override;no-undo;no-wait;not;object;of;old;on;open;or;order;otherwise;outer-join;output;override;parameter;pause;persistent;position;prev;previous;primary;private;procedure;property;public;publish;put;put-key-value;query-open;query-prepare;relation-fields;release;remove;repeat;result;return;returns;revert;run;save;search-target;section;self;sequence;set;share-lock;shared;side-label;side-labels;skip;sql-width;stop;stream;table-trigger;then;this-object;this-procedure;throw;to;transaction;trigger;triggers;undo;unformatted;unique;unix;unload;update;use;using;valexp;validate;valmsg;var;variable;view-as;wait-for;when;where;while;widget-pool;width;with;word;write;x-document;x-noderef" ignore_case="true" />
    <keywords2 keywords="available;base64-decode;base64-encode;begins;buffer-tenant-name;can-do;can-find;can-query;caps;chr;current-language;encode;entry;etime;lastkey;length;lookup;mtime;now;num-dbs;num-entries;opsys;page-number;page-size;progress;proversion;replace;right-trim;row-state;screen-lines;set-size;setuserid;string;substring;time;today;trim;upper;userid;valid-handle;value" />
    <keywords3 keywords="buffer;button;char;character;class;data-source;dataset;dataset-handle;date;datetime;datetime-tz;decimal;error-status;false;handle;int;int64;integer;logical;memptr;no;query;recid;rowid;session;table;table-handle;temp-table;true;void;widget-handle;yes" />
    <keywords4 keywords=":accept-changes;:accept-row-changes;:active;:add;:add-buffer;:add-new-field;:add-parent-id-relation;:add-relation;:add-source-buffer;:add-super-procedure;:adm-data;:after-buffer;:after-rowid;:after-table;:apply-callback;:attach-data-source;:attached-pairlist;:available;:batch-size;:before-buffer;:before-rowid;:before-table;:buffer-compare;:buffer-copy;:buffer-create;:buffer-delete;:buffer-field;:buffer-name;:buffer-release;:buffer-value;:can-create;:can-delete;:can-read;:can-write;:child-buffer;:clear;:copy-dataset;:copy-temp-table;:create-like;:current-query;:data-source;:data-source-complete-map;:data-source-modified;:data-source-rowid;:dataset;:default-buffer-handle;:detach-data-source;:display-timezone;:dynamic;:empty-dataset;:encoding;:error;:file-name;:file-size;:fill;:fill-mode;:fill-where-string;:find-first;:find-last;:find-unique;:first-buffer;:first-data-source;:first-dataset;:first-procedure;:foreign-key-hidden;:forward-only;:get-attribute;:get-buffer-handle;:get-callback-proc-context;:get-callback-proc-name;:get-changes;:get-child;:get-child-relation;:get-dataset-buffer;:get-document-element;:get-relation;:get-source-buffer;:get-top-buffer;:handle;:has-records;:instantiating-procedure;:keys;:mark-new;:maximum-level;:merge-by-field;:merge-changes;:name;:namespace-prefix;:namespace-uri;:nested;:next-rowid;:next-sibling;:node-value;:num-buffers;:num-child-relations;:num-children;:num-fields;:num-references;:num-relations;:num-source-buffers;:num-top-buffers;:origin-rowid;:parent-buffer;:parent-fields-after;:parent-fields-before;:parent-id-relation;:parent-relation;:prefer-dataset;:prepare-string;:prepared;:private-data;:query;:query-close;:query-off-end;:quoter;:read-json;:read-xml;:read-xmlschema;:recursive;:reject-changes;:reject-row-changes;:rejected;:relation-fields;:relations-active;:remote;:remove-super-procedure;:reposition;:restart-row;:restart-rowid;:row-state;:save-row-changes;:save-where-string;:serialize-name;:set-buffers;:set-callback;:set-callback-procedure;:super-procedures;:temp-table-prepare;:timezone;:top-nav-query;:tracking-changes;:type;:unique-id;:where-string;:write-json;:write-xml;:write-xmlschema;:xml-node-name" />
  </highlighting>
  <extensionMap>
    <mapping pattern="*.p.cache" />
    <mapping ext="cache" />
    <mapping ext="cls" />
    <mapping ext="lexer" />
    <mapping ext="i" />
    <mapping ext="p" />
    <mapping ext="t" />
    <mapping ext="w" />
    <mapping ext="df" />
    <mapping ext="parser" />
    <mapping ext="lst" />
  </extensionMap>
</filetype>