% This file was generated from an m4 template.
% Generation date-time (ISO 8601): 2019-03-10T10:14+00:00
% Git remote URL: https://github.com/emerald/modes-listings
% Git commit ID: 58c030135c5312f58537438e766054171f662ddf

% Copyright (c) 2019 Oleks <oleks@oleks.info>
% 
% Permission is hereby granted, free of charge, to any person obtaining
% a copy of this software and associated documentation files (the
% "Software"), to deal in the Software without restriction, including
% without limitation the rights to use, copy, modify, merge, publish,
% distribute, sublicense, and/or sell copies of the Software, and to
% permit persons to whom the Software is furnished to do so, subject to
% the following conditions:
% 
% The above copyright notice and this permission notice shall be
% included in all copies or substantial portions of the Software.
% 
% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
% EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
% MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
% IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
% CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
% TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
% SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

\lstdefinelanguage{emerald}
{
 % Keywords and built-in types, as found in:
  % Git remote URL: https://github.com/emerald/old-emerald
  % Git commit ID: 8de69f56ed8a7dcec2aacae369d2a20f29dfe960
  morekeywords={
    accept, and, as, assert,
    at, attached, awaiting, begin,
    builtin, by, checkpoint, class,
    closure, codeof, const, else,
    elseif, end, enumeration, exit,
    export, external, failure, false,
    field, fix, for, forall,
    from, function, if, immutable,
    in, initially, isfixed, islocal,
    locate, loop, monitor, move,
    nameof, new, nil, object,
    op, operation, or, primitive,
    process, record, recovery, refix,
    restrict, return, returnandfail, self,
    signal, suchthat, syntactictypeof, then,
    to, true, typeobject, typeof,
    unavailable, unfix, var, view,
    visit, wait, when, while, where
  },
  moreemph={
    Any, AOpVecE, AOpVec, AParamL,
    Array, AType, Bitchunk, Boolean,
    Buffer, Char, Cond, COpVecE,
    COpVec, CType, Decoder, Direct,
    GroupBase, Group, Handler, InStr,
    Integer, IState, IVec, IVOfAny,
    IVOfInt, IVOfStr, Literal, Makefile,
    name, new_Integer, Nil, NLElem,
    NodeL, Node, OutStr, RDirect,
    Real, realNode, RISA, RISC,
    Sequence, Signat, String, Stub,
    Time, Unix, vec-ed, vec-ed,
    Vec, VOfAny, VOfChar, VOfInt,
    VOfStr, xReal, xxxLiteral, 
  },
  % The other parts of the syntax spec, as found in other.vim:
  sensitive = false,
  morecomment=[l]{\%},
  morestring=[b]",
  morestring=[b]',
}
