Filewatcher File Search
FTP Search
  
Directory (beta)
  
Content Search (beta)
   
pkg://joe-3.5-5.fc9.src.rpm:629469/joe-3.5.tar.gz  info  downloads

joe-3.5/0000777000100100010020000000000010457756053005672 5joe-3.5/charmaps/0000777000100100010020000000000010457756052007467 5joe-3.5/charmaps/klingon.in0000666000100100010020000002516510046332521011372 <code_set_name> Klingon-ASCII
<comment_char> %
<escape_char> /
% version: 1.0
%   An 8-bit character set with Klingon characters in range 0xD0 - 0xFF and
%   KOI8-R (ASCII w/ line drawing) for the rest.

CHARMAP
<U0000>     /x00         NULL (NUL)
<U0001>     /x01         START OF HEADING (SOH)
<U0002>     /x02         START OF TEXT (STX)
<U0003>     /x03         END OF TEXT (ETX)
<U0004>     /x04         END OF TRANSMISSION (EOT)
<U0005>     /x05         ENQUIRY (ENQ)
<U0006>     /x06         ACKNOWLEDGE (ACK)
<U0007>     /x07         BELL (BEL)
<U0008>     /x08         BACKSPACE (BS)
<U0009>     /x09         CHARACTER TABULATION (HT)
<U000A>     /x0a         LINE FEED (LF)
<U000B>     /x0b         LINE TABULATION (VT)
<U000C>     /x0c         FORM FEED (FF)
<U000D>     /x0d         CARRIAGE RETURN (CR)
<U000E>     /x0e         SHIFT OUT (SO)
<U000F>     /x0f         SHIFT IN (SI)
<U0010>     /x10         DATALINK ESCAPE (DLE)
<U0011>     /x11         DEVICE CONTROL ONE (DC1)
<U0012>     /x12         DEVICE CONTROL TWO (DC2)
<U0013>     /x13         DEVICE CONTROL THREE (DC3)
<U0014>     /x14         DEVICE CONTROL FOUR (DC4)
<U0015>     /x15         NEGATIVE ACKNOWLEDGE (NAK)
<U0016>     /x16         SYNCHRONOUS IDLE (SYN)
<U0017>     /x17         END OF TRANSMISSION BLOCK (ETB)
<U0018>     /x18         CANCEL (CAN)
<U0019>     /x19         END OF MEDIUM (EM)
<U001A>     /x1a         SUBSTITUTE (SUB)
<U001B>     /x1b         ESCAPE (ESC)
<U001C>     /x1c         FILE SEPARATOR (IS4)
<U001D>     /x1d         GROUP SEPARATOR (IS3)
<U001E>     /x1e         RECORD SEPARATOR (IS2)
<U001F>     /x1f         UNIT SEPARATOR (IS1)
<U0020>     /x20         SPACE
<U0021>     /x21         EXCLAMATION MARK
<U0022>     /x22         QUOTATION MARK
<U0023>     /x23         NUMBER SIGN
<U0024>     /x24         DOLLAR SIGN
<U0025>     /x25         PERCENT SIGN
<U0026>     /x26         AMPERSAND
<U0027>     /x27         APOSTROPHE
<U0028>     /x28         LEFT PARENTHESIS
<U0029>     /x29         RIGHT PARENTHESIS
<U002A>     /x2a         ASTERISK
<U002B>     /x2b         PLUS SIGN
<U002C>     /x2c         COMMA
<U002D>     /x2d         HYPHEN-MINUS
<U002E>     /x2e         FULL STOP
<U002F>     /x2f         SOLIDUS
<U0030>     /x30         DIGIT ZERO
<U0031>     /x31         DIGIT ONE
<U0032>     /x32         DIGIT TWO
<U0033>     /x33         DIGIT THREE
<U0034>     /x34         DIGIT FOUR
<U0035>     /x35         DIGIT FIVE
<U0036>     /x36         DIGIT SIX
<U0037>     /x37         DIGIT SEVEN
<U0038>     /x38         DIGIT EIGHT
<U0039>     /x39         DIGIT NINE
<U003A>     /x3a         COLON
<U003B>     /x3b         SEMICOLON
<U003C>     /x3c         LESS-THAN SIGN
<U003D>     /x3d         EQUALS SIGN
<U003E>     /x3e         GREATER-THAN SIGN
<U003F>     /x3f         QUESTION MARK
<U0040>     /x40         COMMERCIAL AT
<U0041>     /x41         LATIN CAPITAL LETTER A
<U0042>     /x42         LATIN CAPITAL LETTER B
<U0043>     /x43         LATIN CAPITAL LETTER C
<U0044>     /x44         LATIN CAPITAL LETTER D
<U0045>     /x45         LATIN CAPITAL LETTER E
<U0046>     /x46         LATIN CAPITAL LETTER F
<U0047>     /x47         LATIN CAPITAL LETTER G
<U0048>     /x48         LATIN CAPITAL LETTER H
<U0049>     /x49         LATIN CAPITAL LETTER I
<U004A>     /x4a         LATIN CAPITAL LETTER J
<U004B>     /x4b         LATIN CAPITAL LETTER K
<U004C>     /x4c         LATIN CAPITAL LETTER L
<U004D>     /x4d         LATIN CAPITAL LETTER M
<U004E>     /x4e         LATIN CAPITAL LETTER N
<U004F>     /x4f         LATIN CAPITAL LETTER O
<U0050>     /x50         LATIN CAPITAL LETTER P
<U0051>     /x51         LATIN CAPITAL LETTER Q
<U0052>     /x52         LATIN CAPITAL LETTER R
<U0053>     /x53         LATIN CAPITAL LETTER S
<U0054>     /x54         LATIN CAPITAL LETTER T
<U0055>     /x55         LATIN CAPITAL LETTER U
<U0056>     /x56         LATIN CAPITAL LETTER V
<U0057>     /x57         LATIN CAPITAL LETTER W
<U0058>     /x58         LATIN CAPITAL LETTER X
<U0059>     /x59         LATIN CAPITAL LETTER Y
<U005A>     /x5a         LATIN CAPITAL LETTER Z
<U005B>     /x5b         LEFT SQUARE BRACKET
<U005C>     /x5c         REVERSE SOLIDUS
<U005D>     /x5d         RIGHT SQUARE BRACKET
<U005E>     /x5e         CIRCUMFLEX ACCENT
<U005F>     /x5f         LOW LINE
<U0060>     /x60         GRAVE ACCENT
<U0061>     /x61         LATIN SMALL LETTER A
<U0062>     /x62         LATIN SMALL LETTER B
<U0063>     /x63         LATIN SMALL LETTER C
<U0064>     /x64         LATIN SMALL LETTER D
<U0065>     /x65         LATIN SMALL LETTER E
<U0066>     /x66         LATIN SMALL LETTER F
<U0067>     /x67         LATIN SMALL LETTER G
<U0068>     /x68         LATIN SMALL LETTER H
<U0069>     /x69         LATIN SMALL LETTER I
<U006A>     /x6a         LATIN SMALL LETTER J
<U006B>     /x6b         LATIN SMALL LETTER K
<U006C>     /x6c         LATIN SMALL LETTER L
<U006D>     /x6d         LATIN SMALL LETTER M
<U006E>     /x6e         LATIN SMALL LETTER N
<U006F>     /x6f         LATIN SMALL LETTER O
<U0070>     /x70         LATIN SMALL LETTER P
<U0071>     /x71         LATIN SMALL LETTER Q
<U0072>     /x72         LATIN SMALL LETTER R
<U0073>     /x73         LATIN SMALL LETTER S
<U0074>     /x74         LATIN SMALL LETTER T
<U0075>     /x75         LATIN SMALL LETTER U
<U0076>     /x76         LATIN SMALL LETTER V
<U0077>     /x77         LATIN SMALL LETTER W
<U0078>     /x78         LATIN SMALL LETTER X
<U0079>     /x79         LATIN SMALL LETTER Y
<U007A>     /x7a         LATIN SMALL LETTER Z
<U007B>     /x7b         LEFT CURLY BRACKET
<U007C>     /x7c         VERTICAL LINE
<U007D>     /x7d         RIGHT CURLY BRACKET
<U007E>     /x7e         TILDE
<U007F>     /x7f         DELETE (DEL)
<U2500>     /x80         BOX DRAWINGS LIGHT HORIZONTAL
<U2502>     /x81         BOX DRAWINGS LIGHT VERTICAL
<U250C>     /x82         BOX DRAWINGS LIGHT DOWN AND RIGHT
<U2510>     /x83         BOX DRAWINGS LIGHT DOWN AND LEFT
<U2514>     /x84         BOX DRAWINGS LIGHT UP AND RIGHT
<U2518>     /x85         BOX DRAWINGS LIGHT UP AND LEFT
<U251C>     /x86         BOX DRAWINGS LIGHT VERTICAL AND RIGHT
<U2524>     /x87         BOX DRAWINGS LIGHT VERTICAL AND LEFT
<U252C>     /x88         BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
<U2534>     /x89         BOX DRAWINGS LIGHT UP AND HORIZONTAL
<U253C>     /x8a         BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
<U2580>     /x8b         UPPER HALF BLOCK
<U2584>     /x8c         LOWER HALF BLOCK
<U2588>     /x8d         FULL BLOCK
<U258C>     /x8e         LEFT HALF BLOCK
<U2590>     /x8f         RIGHT HALF BLOCK
<U2591>     /x90         LIGHT SHADE
<U2592>     /x91         MEDIUM SHADE
<U2593>     /x92         DARK SHADE
<U2320>     /x93         TOP HALF INTEGRAL
<U25A0>     /x94         BLACK SQUARE
<U2219>     /x95         BULLET OPERATOR
<U221A>     /x96         SQUARE ROOT
<U2248>     /x97         ALMOST EQUAL TO
<U2264>     /x98         LESS-THAN OR EQUAL TO
<U2265>     /x99         GREATER-THAN OR EQUAL TO
<U00A0>     /x9a         NO-BREAK SPACE
<U2321>     /x9b         BOTTOM HALF INTEGRAL
<U00B0>     /x9c         DEGREE SIGN
<U00B2>     /x9d         SUPERSCRIPT TWO
<U00B7>     /x9e         MIDDLE DOT
<U00F7>     /x9f         DIVISION SIGN
<U2550>     /xa0         BOX DRAWINGS DOUBLE HORIZONTAL
<U2551>     /xa1         BOX DRAWINGS DOUBLE VERTICAL
<U2552>     /xa2         BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
<U2553>     /xa4         BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
<U2554>     /xa5         BOX DRAWINGS DOUBLE DOWN AND RIGHT
<U2555>     /xa6         BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
<U2556>     /xa7         BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
<U2557>     /xa8         BOX DRAWINGS DOUBLE DOWN AND LEFT
<U2558>     /xa9         BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
<U2559>     /xaa         BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
<U255A>     /xab         BOX DRAWINGS DOUBLE UP AND RIGHT
<U255B>     /xac         BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
<U255C>     /xad         BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
<U255D>     /xae         BOX DRAWINGS DOUBLE UP AND LEFT
<U255E>     /xaf         BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
<U255F>     /xb0         BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
<U2560>     /xb1         BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
<U2561>     /xb2         BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
<U2562>     /xb4         BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
<U2563>     /xb5         BOX DRAWINGS DOUBLE VERTICAL AND LEFT
<U2564>     /xb6         BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
<U2565>     /xb7         BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
<U2566>     /xb8         BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
<U2567>     /xb9         BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
<U2568>     /xba         BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
<U2569>     /xbb         BOX DRAWINGS DOUBLE UP AND HORIZONTAL
<U256A>     /xbc         BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
<U256B>     /xbd         BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
<U256C>     /xbe         BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
<U00A9>     /xbf         COPYRIGHT SIGN
<UF8D0>     /xd0         Klingon letter A
<UF8D1>     /xd1         Klingon letter B
<UF8D2>     /xd2         Klingon letter CH
<UF8D3>     /xd3         Klingon letter D
<UF8D4>     /xd4         Klingon letter E
<UF8D5>     /xd5         Klingon letter GH
<UF8D6>     /xd6         Klingon letter H
<UF8D7>     /xd7         Klingon letter I
<UF8D8>     /xd8         Klingon letter J
<UF8D9>     /xd9         Klingon letter L
<UF8DA>     /xda         Klingon letter M
<UF8DB>     /xdb         Klingon letter N
<UF8DC>     /xdc         Klingon letter NG
<UF8DD>     /xdd         Klingon letter O
<UF8DE>     /xde         Klingon letter P
<UF8DF>     /xdf         Klingon letter Q
<UF8E0>     /xe0         Klingon letter QH
<UF8E1>     /xe1         Klingon letter R
<UF8E2>     /xe2         Klingon letter S
<UF8E3>     /xe3         Klingon letter T
<UF8E4>     /xe4         Klingon letter TLH
<UF8E5>     /xe5         Klingon letter U
<UF8E6>     /xe6         Klingon letter V
<UF8E7>     /xe7         Klingon letter W
<UF8E8>     /xe8         Klingon letter Y
<UF8E9>     /xe9         Klingon letter glottal stop
<UF8F0>     /xf0         Klingon digit 0
<UF8F1>     /xf1         Klingon digit 1
<UF8F2>     /xf2         Klingon digit 2
<UF8F3>     /xf3         Klingon digit 3
<UF8F4>     /xf4         Klingon digit 4
<UF8F5>     /xf5         Klingon digit 5
<UF8F6>     /xf6         Klingon digit 6
<UF8F7>     /xf7         Klingon digit 7
<UF8F8>     /xf8         Klingon digit 8
<UF8F9>     /xf9         Klingon digit 9
<UF8FD>     /xfd         Klingon ,
<UF8FE>     /xfe         Klingon full stop
<UF8FF>     /xff         Klingon mummification glyph
END CHARMAP
joe-3.5/docs/0000777000100100010020000000000010457756052006621 5joe-3.5/docs/help-system.html0000666000100100010020000000561207372236363011705 <html>
	<head>
		<title> JOE 2.9.7pre3 -> Help system </title>
	</head>
	<body bgcolor="#83CCF4">
		<center><h2> JOE:: Help system </h2></center>
		<table>
			<tr>
				<td> Name: </td>
				<td> Help system </td>
			</tr>
			<tr>
				<td> Files: </td>
				<td> help.c, help.h </td>
			</tr>
			<tr>
				<td> Since: </td>
				<td> 2.9.7pre1 </td>
			</tr>
			<tr>
				<td> Main authors: </td>
				<td> Joseph Allen <br> Marek 'marx' Grac <a href="mailto:xgrac@fi.muni.cz">&lt;xgrac@fi.muni.cz&gt;</a> </td>
			</tr>
		</table>
		<p>
			Differences between this and previous version should be hidden
			to users. Main changes were done in design of source code. I
			will try to explain <i>what it is</i> and <i>why it is done this
			way</i>? Main goal was to clean and minimalize source code,
			remove several global variables, move everything concerned with
			help to these files.
		</p>
		<p>
			The help system is based on bi-directional list of help screens. 
			Each help screen has defined two variables, help text (<i>char
			*hlptxt</i>) and number of lines of help text (<i>int
			hlplns</i>).  Since this version the help file can/should be
			separated from *rc files. Advantage of this model is that you
			can set help to other languages. Usage of standard method
			(gettext) will be very difficult here, because help has constant
			width which can't be overcrossed. This method has also no
			problem with having several help files in each language (for
			joe, jmacs, ...). Problematics of setting proper help file will
			be solved in <i>main.c</i> not here.
		</p>
		<h3> How to create a help file </h3>
		<p>
			Help file consist of prologue, body and epilogue for each of the
			screens. Each help screen must begin with <i>{%name</i> where
			<i>%name</i> is only symbolic name of this screen and is not
			used in program. The body of help screen contains text which
			will be showed on the user screen and tags which takes care of
			special information (bold, flash, ...). There is list of the
			tags with theirs functions:
			<ul>
				<li> <b>\i</b> to turn on/off inverse video </li>
				<li> <b>\u</b> to turn on/off underline </li>
				<li> <b>\b</b> to turn on/off bold </li>
				<li> <b>\d</b> to turn on/off dim </li>
				<li> <b>\f</b> to turn on/off flash </li>
			</ul>
			These tags are inserted into help screen text, but they are not
			visible in the help screen (visible are only their effects, but this
			is their purpose <b>:)</b>)
		</p>
		<p>
			Some hints how to write a new help screen. Standard help screens have
			80 characters per line (including borders) so they are visible on text
			console. Sequences of keys are usually written as <i>^KD</i> where
			<i>^</i> means CTRL + next character <i>K</i> and then key named <i>D</i>
			should be pressed.
		</p>
		<hr>
		<p>
			Any comments, ideas, questions send to me at <a href="mailto:xgrac@fi.muni.cz">xgrac@fi.muni.cz</a>
		</p>
	</body>
</html>
joe-3.5/syntax/0000777000100100010020000000000010457756054007221 5joe-3.5/syntax/4gl.jsf.in0000666000100100010020000000657110152703533010733 # JOE syntax highlight file for Progress 4GL
# by Gediminas http://proc.w3.lt
# Version 1.04

# bold inverse blink dim underline
# white cyan magenta blue yellow green red black
# bg_white bg_cyan bg_magenta bg_blue bg_yellow bg_green bg_red bg_black

=Idle
=Comment	green
=Constant	cyan
=Type		magenta
# conditional operators, blocks
=Condition	bold
# buffer repositioning
=KeyDB		bold green
# create, delete record
=CreateDel	bold yellow
# preprocessor include, definition, reference
=Include	yellow
=Preproc	yellow
=PreRef

:idle Idle
	*		idle
	"/"		slash
	"{"		brace
	"&"		prep		buffer
	"a-zA-Z"	ident		buffer
	"'"		string		recolor=-1
	"\""		string2		recolor=-1
	"0-9"		number		recolor=-1 
	"?"		question	recolor=-1

# Comments - 2 levels of nesting allowed

:slash Idle
	*		idle		noeat
	"*"		comment		recolor=-2
:comment Comment
	*		comment
	"/"		slash2
	"*"		maybe_end_comment
:maybe_end_comment Comment
	*		comment
	"/"		idle
	"*"		maybe_end_comment

:slash2 Idle
	*		comment		noeat
	"*"		comment2	recolor=-2
:comment2 Comment
	*		comment2
	"*"		maybe_end_comment2
:maybe_end_comment2 Comment
	*		comment2
	"/"		comment
	"*"		maybe_end_comment2

# Preprocessor
#     Allow preprocessor name reference inside include file reference:
#     {include/trace {&FILE-NAME} {&LINE-NUMBER}}

:brace Include
	*		include		noeat
	"&"		scoped		recolor=-2
	"}"		idle

:include Include
	*		include		recolor=-2
	"{"		brace2
	"}"		idle

:brace2 Include
	*		include2	noeat
	"}"		idle

:include2 Include
	*		include2	recolor=-2
	"}"		include

:scoped PreRef
	*		scoped
	"}"		idle

:prep Preproc
	*			idle		noeat istrings
	"&IF"			predir
	"&THEN"			predir
	"&ELSEIF"		predir
	"&ELSE"			predir
	"&ENDIF"		predir
	"&SCOPED-DEFINE"	predir
	"&SCOP"			predir
	"&GLOBAL-DEFINE"	predir
	"&GLOB"			predir
	"&MESSAGE"		predir
	"&UNDEFINE"		predir
	"&UNDEF"		predir
done
	"-a-zA-Z0-9_"		prep

:predir Preproc
	*		idle		noeat


# String constants, copied from pascal.jsf with " added

:string Constant
	*		string
	"\n"		idle
	"'"		maybe_end_string

:maybe_end_string Constant
	*		idle		recolor=-1 noeat
	"'"		string

:string2 Constant
	*		string2
	"\n"		idle
	"\""		maybe_end_string2

:maybe_end_string2 Constant
	*		idle		recolor=-1 noeat
	"\""		string2

# Numeric constant, same as pascal.jsf

:number Constant
	*		idle		noeat
	"0-9"		number
	"eE"		epart
	"."		dot

:dot Constant
	*		idle	noeat
	"0-9"		float

:float Constant
	*		idle	noeat
	"eE"		epart
	"0-9"		float

:epart Constant
	*		idle	noeat
	"0-9+\-"	enum

:enum Constant
	*		idle	noeat
	"0-9"		enum

:question Constant
	*		idle noeat

# Keywords
# Available jumps: operator type kw kwdb credel func

:ident Idle
	*		idle		noeat istrings
	"assign"	cond
	"case"		cond
	"cha"		type
	"char"		type
	"character"	type
	"create"	credel
	"dat"		type
	"date"		type
	"dec"		type
	"decimal"	type
	"defined"	predir
	"delete"	credel
	"do"		cond
	"else"		cond
	"end"		cond
	"find"		kwdb
	"for"		kwdb
	"function"	cond
	"get"		kwdb
	"handle"	type
	"if"		cond
	"int"		type
	"integer"	type
	"leave"		cond
	"log"		type
	"logical"	type
	"memptr"	type
	"next"		cond
	"otherwise"	cond
	"param"		cond
	"parameter"	cond
	"procedure"	cond
	"raw"		type
	"rec"		type
	"repeat"	cond
	"reposition" kwdb
	"return"	cond
	"rowid"		type
	"run"		cond
	"then"		cond
	"when"		cond
	"widget-handle"	type
done
	"-a-zA-Z0-9_"	ident

:cond Condition
	*	idle	noeat

:kwdb KeyDB
	*	idle	noeat

:type Type
	*	idle	noeat

:credel CreateDel
	*	idle	noeat
	
joe-3.5/syntax/Makefile.am0000644000100100010020000000076410441073560011163 sysconf_joedir = $(sysconfdir)/joe

sysconf_syntaxdir = $(sysconf_joedir)/syntax

sysconf_syntax_DATA = c.jsf perl.jsf verilog.jsf conf.jsf python.jsf php.jsf sh.jsf \
	mail.jsf pascal.jsf html.jsf vhdl.jsf fortran.jsf java.jsf xml.jsf tcl.jsf \
	lisp.jsf csh.jsf mason.jsf diff.jsf asm.jsf tex.jsf css.jsf ocaml.jsf \
	4gl.jsf sml.jsf sql.jsf awk.jsf cobol.jsf sed.jsf ps.jsf ada.jsf \
	troff.jsf haskell.jsf rexx.jsf skill.jsf lua.jsf ruby.jsf m4.jsf joerc.jsf

EXTRA_DIST = $(sysconf_syntax_DATA)
joe-3.5/syntax/Makefile.in0000666000100100010020000003717210457754145011217 # Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@

# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005  Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.

@SET_MAKE@

srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
target_triplet = @target@
subdir = syntax
DIST_COMMON = $(srcdir)/4gl.jsf.in $(srcdir)/Makefile.am \
	$(srcdir)/Makefile.in $(srcdir)/ada.jsf.in \
	$(srcdir)/asm.jsf.in $(srcdir)/awk.jsf.in $(srcdir)/c.jsf.in \
	$(srcdir)/cobol.jsf.in $(srcdir)/conf.jsf.in \
	$(srcdir)/csh.jsf.in $(srcdir)/css.jsf.in \
	$(srcdir)/diff.jsf.in $(srcdir)/fortran.jsf.in \
	$(srcdir)/haskell.jsf.in $(srcdir)/html.jsf.in \
	$(srcdir)/java.jsf.in $(srcdir)/joerc.jsf.in \
	$(srcdir)/lisp.jsf.in $(srcdir)/lua.jsf.in $(srcdir)/m4.jsf.in \
	$(srcdir)/mail.jsf.in $(srcdir)/mason.jsf.in \
	$(srcdir)/ocaml.jsf.in $(srcdir)/pascal.jsf.in \
	$(srcdir)/perl.jsf.in $(srcdir)/php.jsf.in $(srcdir)/ps.jsf.in \
	$(srcdir)/python.jsf.in $(srcdir)/rexx.jsf.in \
	$(srcdir)/ruby.jsf.in $(srcdir)/sed.jsf.in $(srcdir)/sh.jsf.in \
	$(srcdir)/skill.jsf.in $(srcdir)/sml.jsf.in \
	$(srcdir)/sql.jsf.in $(srcdir)/tcl.jsf.in $(srcdir)/tex.jsf.in \
	$(srcdir)/troff.jsf.in $(srcdir)/verilog.jsf.in \
	$(srcdir)/vhdl.jsf.in $(srcdir)/xml.jsf.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
	$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
	$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/autoconf.h
CONFIG_CLEAN_FILES = c.jsf perl.jsf verilog.jsf sh.jsf python.jsf \
	conf.jsf php.jsf mail.jsf pascal.jsf html.jsf vhdl.jsf \
	fortran.jsf java.jsf xml.jsf tcl.jsf lisp.jsf csh.jsf \
	mason.jsf diff.jsf asm.jsf css.jsf tex.jsf ocaml.jsf 4gl.jsf \
	sml.jsf sql.jsf awk.jsf cobol.jsf sed.jsf ps.jsf ada.jsf \
	troff.jsf haskell.jsf rexx.jsf skill.jsf lua.jsf ruby.jsf \
	m4.jsf joerc.jsf
SOURCES =
DIST_SOURCES =
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
    *) f=$$p;; \
  esac;
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
am__installdirs = "$(DESTDIR)$(sysconf_syntaxdir)"
sysconf_syntaxDATA_INSTALL = $(INSTALL_DATA)
DATA = $(sysconf_syntax_DATA)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
SPELL = @SPELL@
STRIP = @STRIP@
VERSION = @VERSION@
ac_ct_CC = @ac_ct_CC@
ac_ct_STRIP = @ac_ct_STRIP@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
datadir = @datadir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target = @target@
target_alias = @target_alias@
target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
sysconf_joedir = $(sysconfdir)/joe
sysconf_syntaxdir = $(sysconf_joedir)/syntax
sysconf_syntax_DATA = c.jsf perl.jsf verilog.jsf conf.jsf python.jsf php.jsf sh.jsf \
	mail.jsf pascal.jsf html.jsf vhdl.jsf fortran.jsf java.jsf xml.jsf tcl.jsf \
	lisp.jsf csh.jsf mason.jsf diff.jsf asm.jsf tex.jsf css.jsf ocaml.jsf \
	4gl.jsf sml.jsf sql.jsf awk.jsf cobol.jsf sed.jsf ps.jsf ada.jsf \
	troff.jsf haskell.jsf rexx.jsf skill.jsf lua.jsf ruby.jsf m4.jsf joerc.jsf

EXTRA_DIST = $(sysconf_syntax_DATA)
all: all-am

.SUFFIXES:
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
	@for dep in $?; do \
	  case '$(am__configure_deps)' in \
	    *$$dep*) \
	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
		&& exit 0; \
	      exit 1;; \
	  esac; \
	done; \
	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  syntax/Makefile'; \
	cd $(top_srcdir) && \
	  $(AUTOMAKE) --gnu  syntax/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
	@case '$?' in \
	  *config.status*) \
	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
	  *) \
	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
	esac;

$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh

$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
c.jsf: $(top_builddir)/config.status $(srcdir)/c.jsf.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
perl.jsf: $(top_builddir)/config.status $(srcdir)/perl.jsf.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
verilog.jsf: $(top_builddir)/config.status $(srcdir)/verilog.jsf.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
sh.jsf: $(top_builddir)/config.status $(srcdir)/sh.jsf.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
python.jsf: $(top_builddir)/config.status $(srcdir)/python.jsf.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
conf.jsf: $(top_builddir)/config.status $(srcdir)/conf.jsf.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
php.jsf: $(top_builddir)/config.status $(srcdir)/php.jsf.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
mail.jsf: $(top_builddir)/config.status $(srcdir)/mail.jsf.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
pascal.jsf: $(top_builddir)/config.status $(srcdir)/pascal.jsf.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
html.jsf: $(top_builddir)/config.status $(srcdir)/html.jsf.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
vhdl.jsf: $(top_builddir)/config.status $(srcdir)/vhdl.jsf.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
fortran.jsf: $(top_builddir)/config.status $(srcdir)/fortran.jsf.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
java.jsf: $(top_builddir)/config.status $(srcdir)/java.jsf.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
xml.jsf: $(top_builddir)/config.status $(srcdir)/xml.jsf.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
tcl.jsf: $(top_builddir)/config.status $(srcdir)/tcl.jsf.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
lisp.jsf: $(top_builddir)/config.status $(srcdir)/lisp.jsf.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
csh.jsf: $(top_builddir)/config.status $(srcdir)/csh.jsf.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
mason.jsf: $(top_builddir)/config.status $(srcdir)/mason.jsf.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
diff.jsf: $(top_builddir)/config.status $(srcdir)/diff.jsf.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
asm.jsf: $(top_builddir)/config.status $(srcdir)/asm.jsf.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
css.jsf: $(top_builddir)/config.status $(srcdir)/css.jsf.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
tex.jsf: $(top_builddir)/config.status $(srcdir)/tex.jsf.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
ocaml.jsf: $(top_builddir)/config.status $(srcdir)/ocaml.jsf.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
4gl.jsf: $(top_builddir)/config.status $(srcdir)/4gl.jsf.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
sml.jsf: $(top_builddir)/config.status $(srcdir)/sml.jsf.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
sql.jsf: $(top_builddir)/config.status $(srcdir)/sql.jsf.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
awk.jsf: $(top_builddir)/config.status $(srcdir)/awk.jsf.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
cobol.jsf: $(top_builddir)/config.status $(srcdir)/cobol.jsf.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
sed.jsf: $(top_builddir)/config.status $(srcdir)/sed.jsf.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
ps.jsf: $(top_builddir)/config.status $(srcdir)/ps.jsf.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
ada.jsf: $(top_builddir)/config.status $(srcdir)/ada.jsf.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
troff.jsf: $(top_builddir)/config.status $(srcdir)/troff.jsf.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
haskell.jsf: $(top_builddir)/config.status $(srcdir)/haskell.jsf.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
rexx.jsf: $(top_builddir)/config.status $(srcdir)/rexx.jsf.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
skill.jsf: $(top_builddir)/config.status $(srcdir)/skill.jsf.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
lua.jsf: $(top_builddir)/config.status $(srcdir)/lua.jsf.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
ruby.jsf: $(top_builddir)/config.status $(srcdir)/ruby.jsf.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
m4.jsf: $(top_builddir)/config.status $(srcdir)/m4.jsf.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
joerc.jsf: $(top_builddir)/config.status $(srcdir)/joerc.jsf.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
uninstall-info-am:
install-sysconf_syntaxDATA: $(sysconf_syntax_DATA)
	@$(NORMAL_INSTALL)
	test -z "$(sysconf_syntaxdir)" || $(mkdir_p) "$(DESTDIR)$(sysconf_syntaxdir)"
	@list='$(sysconf_syntax_DATA)'; for p in $$list; do \
	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
	  f=$(am__strip_dir) \
	  echo " $(sysconf_syntaxDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(sysconf_syntaxdir)/$$f'"; \
	  $(sysconf_syntaxDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(sysconf_syntaxdir)/$$f"; \
	done

uninstall-sysconf_syntaxDATA:
	@$(NORMAL_UNINSTALL)
	@list='$(sysconf_syntax_DATA)'; for p in $$list; do \
	  f=$(am__strip_dir) \
	  echo " rm -f '$(DESTDIR)$(sysconf_syntaxdir)/$$f'"; \
	  rm -f "$(DESTDIR)$(sysconf_syntaxdir)/$$f"; \
	done
tags: TAGS
TAGS:

ctags: CTAGS
CTAGS:


distdir: $(DISTFILES)
	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
	list='$(DISTFILES)'; for file in $$list; do \
	  case $$file in \
	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
	  esac; \
	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
	    dir="/$$dir"; \
	    $(mkdir_p) "$(distdir)$$dir"; \
	  else \
	    dir=''; \
	  fi; \
	  if test -d $$d/$$file; then \
	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
	    fi; \
	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
	  else \
	    test -f $(distdir)/$$file \
	    || cp -p $$d/$$file $(distdir)/$$file \
	    || exit 1; \
	  fi; \
	done
check-am: all-am
check: check-am
all-am: Makefile $(DATA)
installdirs:
	for dir in "$(DESTDIR)$(sysconf_syntaxdir)"; do \
	  test -z "$$dir" || $(mkdir_p) "$$dir"; \
	done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am

install-am: all-am
	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am

installcheck: installcheck-am
install-strip:
	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
	  `test -z '$(STRIP)' || \
	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:

clean-generic:

distclean-generic:
	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)

maintainer-clean-generic:
	@echo "This command is intended for maintainers to use"
	@echo "it deletes files that may require special tools to rebuild."
clean: clean-am

clean-am: clean-generic mostlyclean-am

distclean: distclean-am
	-rm -f Makefile
distclean-am: clean-am distclean-generic

dvi: dvi-am

dvi-am:

html: html-am

info: info-am

info-am:

install-data-am: install-sysconf_syntaxDATA

install-exec-am:

install-info: install-info-am

install-man:

installcheck-am:

maintainer-clean: maintainer-clean-am
	-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic

mostlyclean: mostlyclean-am

mostlyclean-am: mostlyclean-generic

pdf: pdf-am

pdf-am:

ps: ps-am

ps-am:

uninstall-am: uninstall-info-am uninstall-sysconf_syntaxDATA

.PHONY: all all-am check check-am clean clean-generic distclean \
	distclean-generic distdir dvi dvi-am html html-am info info-am \
	install install-am install-data install-data-am install-exec \
	install-exec-am install-info install-info-am install-man \
	install-strip install-sysconf_syntaxDATA installcheck \
	installcheck-am installdirs maintainer-clean \
	maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
	pdf-am ps ps-am uninstall uninstall-am uninstall-info-am \
	uninstall-sysconf_syntaxDATA

# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
joe-3.5/syntax/ada.jsf.in0000666000100100010020000000477610232347340010776 # JOE syntax highlight file for ADA

# Define colors

=Idle
=Comment green
=Constant cyan
=Escape bold cyan
=Keyword bold
=Operator bold

:idle Idle
	*		idle
	"-"		maybe_comment
	"'"		char		recolor=-1
	"\""		string		recolor=-1
	"0-9"		first_digit	recolor=-1
	"."		maybe_float
	"\""		string		recolor=-1
	"Bb"		maybe_binary	buffer
	"Oo"		maybe_octal	buffer
	"Xx"		maybe_hex	buffer
	"ac-np-wyzAC-NP-WYZ"	ident	buffer

:maybe_comment Idle
	*		idle		noeat
	"-"		comment		recolor=-2

:comment Comment
	*		comment
	"\n"		idle


# Character constant

:char Idle
	*		char1

:char1 Idle
	*		idle
	"'"		char2		recolor=-3

:char2 Constant
	*		idle		noeat

# Strings

:maybe_binary Idle
	*		ident		noeat
	"\""		string		recolor=-2

:maybe_octal Idle
	*		ident		noeat
	"\""		string		recolor=-2

:maybe_hex Idle
	*		ident		noeat
	"\""		string		recolor=-2

:string	Constant
	*		string
	"\n"		idle
	"\""		idle
	"\\"		string_escape	recolor=-1

:string_escape Escape
	*		string
	"\n"		string		recolor=-2

# Integer constants

:first_digit Constant
	*		idle		noeat
	"."		float
	"_"		first_digit
	"0-9"		first_digit

# Floating point

:maybe_float Constant
	*		idle	recolor=-2	noeat
	"0-9"		float		recolor=-2

:float Constant
	*		idle	noeat
	"eE"		epart
	"0-9"		float

:epart	Constant
	*		idle	noeat
	"0-9+\-"	enum

:enum	Constant
	*		idle	noeat
	"0-9"		enum

# Identifiers

:ident	Idle
	*		quote		noeat istrings
	"abort"		kw
	"abs"		operator
	"abstract"	kw
	"accept"	kw
	"aliased"	kw
	"all"		kw
	"and"		operator
	"array"		kw
	"at"		kw
	"begin"		kw
	"body"		kw
	"case"		kw
	"constant"	kw
	"declare"	kw
	"delay"		kw
	"delta"		kw
	"digits"	kw
	"do"		kw
	"else"		kw
	"elsif"		kw
	"end"		kw
	"entry"		kw
	"exception"	kw
	"exit"		kw
	"for"		kw
	"function"	kw
	"generic"	kw
	"goto"		kw
	"if"		kw
	"in"		kw
	"interface"	kw
	"is"		kw
	"limited"	kw
	"loop"		kw
	"mod"		kw
	"new"		kw
	"not"		operator
	"null"		kw
	"of"		kw
	"or"		operator
	"others"	kw
	"out"		kw
	"overriding"	kw
	"package"	kw
	"pragma"	kw
	"private"	kw
	"procedure"	kw
	"protected"	kw
	"raise"		kw
	"range"		kw
	"record"	kw
	"rem"		operator
	"renames"	kw
	"requeue"	kw
	"return"	kw
	"reverse"	kw
	"select"	kw
	"separate"	kw
	"subtype"	kw
	"synchronized"	kw
	"tagged"	kw
	"task"		kw
	"terminate"	kw
	"then"		kw
	"type"		kw
	"until"		kw
	"use"		kw
	"when"		kw
	"while"		kw
	"with"		kw
	"xor"		operator
done
	"a-zA-Z0-9_"	ident

:operator Operator
	*	idle	noeat

:kw Keyword
	*	idle	noeat

# identifiers separated with quote '

:quote	Idle
	*	idle	noeat
	"'"	quote_word

:quote_word	Idle
	*	idle	noeat
	"a-zA-Z"	ident	buffer
joe-3.5/syntax/asm.jsf.in0000666000100100010020000001010610055442550011013 # JOE syntax highlight file for assembly language

# Highlights ';' comments, C-preprocessor stuff and C-like constants.

# Some assembly languages do not use C-preprocessor and use '#' for
# comments.  For them, eliminate all states up to ':idle'. and change the
# ";" line in 'idle' to '#'.

# For UNIX assembly ';' actually separates instructions, but I've only seen
# this for 'rep; movsb'.  If it bothers you eliminate the ';' line in
# ':idle'.

# This highlighter is too strict for numeric constants.  Many assembly
# languages allow '000009', which looks like a bad octal constant in C/UNIX.

=Idle
=Bad		bold red
=Preproc 	blue
=Define		bold blue
=Comment 	green
=IncLocal	cyan
=IncSystem	bold cyan
=Constant 	cyan
=Escape 	bold cyan
=Type 		bold
=Keyword 	bold
=CppKeyword	bold
=Brace
=Control

:reset Idle
	*		first		noeat
	" \t"		reset

:first Idle
	*		idle		noeat
	"#"		pre		recolor=-1

:pre Preproc
	*		preproc		noeat
	" \t"		pre
	"a-z"		preident	recolor=-1 buffer

:preident Preproc
	*		preproc		noeat strings
	"define"	predef
	"include"	preinc
done
	"a-z"		preident

:preinc Preproc
	*		preinc
	" \t"		preinc_ws
	"\n"		reset
	
:preinc_ws Preproc
	*		prebad		recolor=-1
	" \t"		preinc_ws
	"\""		preinc_local	recolor=-1
	"<"		preinc_system	recolor=-1

:preinc_local IncLocal
	*		preinc_local
	"\"\n"		reset
	
:preinc_system IncSystem
	*		preinc_system
	">\n"		reset

:prebad	Bad	
	*		prebad
	"\n"		reset


:predef Preproc
	*		predef
	" \t"		predef_ws
	"\n"		reset
	
:predef_ws Preproc
	*		prebad		recolor=-1
	" \t"		predef_ws
	"a-zA-Z0-9_"	predef_ident	recolor=-1

:predef_ident Define
	*		idle		noeat
	"a-zA-Z0-9_"	predef_ident


:preproc Preproc
	*		preproc
	"\n"		reset
	"\\"		preproc_cont
	"/"		preproc_slash
	
:preproc_slash Preproc
	*		preproc		noeat
	"*"		comment		recolor=-2
	"/"		line_comment	recolor=-2
	
:preproc_cont Preproc
	*		preproc_cont
	"\n"		preproc

# All following states are for when we're not in a preprocessor line

:idle Idle
	*		idle
	";"		line_comment	recolor=-1
	"\n"		reset
	"/"		slash
	"0"		first_digit	recolor=-1
	"1-9"		decimal	recolor=-1
	"."		maybe_float
	"\""		string		recolor=-1
	"'"		char		recolor=-1
	"a-zA-Z_"	ident		buffer
	"{}"		brace		recolor=-1
	",:=()><[]*&|!~+\-%^"	control		recolor=-1

:brace Brace
	*	idle	noeat

:control Control
	*	idle	noeat

:slash Idle
	*		idle		noeat recolor=-2	# Not sure about this
	"*"		comment		recolor=-2
	"/"		line_comment	recolor=-2

:comment Comment
	*		comment
	"*"		maybe_end_comment

:maybe_end_comment Comment
	*		comment
	"/"		idle
	"*"		maybe_end_comment

:line_comment Comment
	*		line_comment
	"\n"		reset

:first_digit Constant
	*		idle	noeat
	"xX"		hex
	"."		float
	"eE"		epart
	"0-7"		octal
	"89"		bad_number	recolor=-1

:bad_number Bad
	*		idle	noeat
	"0-9"		bad_number

:octal Constant
	*		idle	noeat
	"0-7"		octal
	"89"		bad_number	recolor=-1

:hex Constant
	*		idle	noeat
	"0-9A-Fa-f"	hex

:decimal Constant
	*		idle	noeat
	"0-9"		decimal
	"eE"		epart
	"."		float

:maybe_float Constant
	*		idle	recolor=-2	noeat
	"0-9"		float		recolor=-2

:float Constant
	*		idle	noeat
	"eE"		epart
	"0-9"		float

:epart Constant
	*		idle	noeat
	"0-9+\-"	enum

:enum Constant
	*		idle	noeat
	"0-9"		enum

:string	Constant
	*		string
	"\""		idle
	"\\"		string_escape	recolor=-1
	"%"		string_control	recolor=-1

:string_escape Escape
	*		string
	"x"		string_hex1
	"0-7"		string_octal2
	"\n"		string		recolor=-2

:string_hex1 Escape
	*		string		noeat
	"0-9a-fA-F"	string_hex2

:string_hex2 Escape
	*		string		noeat
	"0-9a-fA-F"	string

:string_octal2 Escape
	*		string		noeat
	"0-7"		string_octal3

:string_octal3 Escape
	*		string		noeat
	"0-7"		string

:string_control Escape
	*		string_control
	"\n"		reset
	"diouxXeEfFgGaAcspn%SC"	string

:char Constant
	*		char
	"\n"		reset
	"'"		idle
	"\\"		char_escape	recolor=-1

:char_escape	Escape
	*		char
	"x"		char_hex1
	"0-7"		char_octal2
	"\n"		char		recolor=-2

:char_hex1 Escape
	*		char		noeat
	"0-9a-fA-F"	char_hex2

:char_hex2 Escape
	*		char		noeat
	"0-9a-fA-F"	char

:char_octal2 Escape
	*		char		noeat
	"0-7"		char_octal3

:char_octal3 Escape
	*		char		noeat
	"0-7"		char

:ident Idle
	*		idle		noeat
	"a-zA-Z0-9_"	ident
joe-3.5/syntax/awk.jsf.in0000666000100100010020000000631010225516744011025 # JOE syntax highlight file for AWK

# Resync whole file
-

=Idle
=Bad		bold red
=Preproc 	blue
=Define		bold blue
=Comment 	green
=IncLocal	cyan
=IncSystem	bold cyan
=Constant 	cyan
=Escape 	bold cyan
=Type 		bold
=Keyword 	bold
=CppKeyword	bold
=Brace		magenta
=Control

:reset Idle
	*		first		noeat
	" \t"		reset

:first Idle
	*		idle		noeat
	"/"		regex
	"#"		reset_line_comment	recolor=-1

:regex Idle
	*		regex
	"/"		idle
	"\\"		regex_skip

:regex_skip Idle
	*		regex

:reset_line_comment Comment
	*		reset_line_comment
	"\n"		reset

:idle Idle
	*		idle
	"\n"		reset
	"#"		line_comment	recolor=-1
	"0"		first_digit	recolor=-1
	"1-9"		decimal	recolor=-1
	"."		maybe_float
	"\""		string		recolor=-1
	"'"		char		recolor=-1
	"a-zA-Z_"	ident		buffer
	"{}"		brace		recolor=-1
	"/,:;=()><[]*&|!~+\-%^"	control		recolor=-1

:brace Brace
	*	idle	noeat

:control Control
	*	idle	noeat

:line_comment Comment
	*		line_comment
	"\n"		reset

:first_digit Constant
	*		idle	noeat
	"xX"		hex
	"."		float
	"eE"		epart
	"0-7"		octal
	"89"		bad_number	recolor=-1

:bad_number Bad
	*		idle	noeat
	"0-9"		bad_number

:octal Constant
	*		idle	noeat
	"0-7"		octal
	"89"		bad_number	recolor=-1

:hex Constant
	*		idle	noeat
	"0-9A-Fa-f"	hex

:decimal Constant
	*		idle	noeat
	"0-9"		decimal
	"eE"		epart
	"."		float

:maybe_float Constant
	*		idle	recolor=-2	noeat
	"0-9"		float		recolor=-2

:float Constant
	*		idle	noeat
	"eE"		epart
	"0-9"		float

:epart Constant
	*		idle	noeat
	"0-9+\-"	enum

:enum Constant
	*		idle	noeat
	"0-9"		enum

:string	Constant
	*		string
	"\""		idle
	"\\"		string_escape	recolor=-1
	"%"		string_control	recolor=-1

:string_escape Escape
	*		string
	"x"		string_hex1
	"0-7"		string_octal2
	"\n"		string		recolor=-2

:string_hex1 Escape
	*		string		noeat
	"0-9a-fA-F"	string_hex2

:string_hex2 Escape
	*		string		noeat
	"0-9a-fA-F"	string

:string_octal2 Escape
	*		string		noeat
	"0-7"		string_octal3

:string_octal3 Escape
	*		string		noeat
	"0-7"		string

:string_control Escape
	*		string
	"\""		string noeat
	"\n"		reset
	"0-9.\-+ #hjILtz$"	string_control

:char Constant
	*		char
	"\n"		reset
	"'"		idle
	"\\"		char_escape	recolor=-1

:char_escape	Escape
	*		char
	"x"		char_hex1
	"0-7"		char_octal2
	"\n"		char		recolor=-2

:char_hex1 Escape
	*		char		noeat
	"0-9a-fA-F"	char_hex2

:char_hex2 Escape
	*		char		noeat
	"0-9a-fA-F"	char

:char_octal2 Escape
	*		char		noeat
	"0-7"		char_octal3

:char_octal3 Escape
	*		char		noeat
	"0-7"		char

:ident Idle
	*		idle		noeat strings
	"if"		kw
	"else"		kw
	"while"		kw
	"do"		kw
	"for"		kw
	"break"		kw
	"continue"		kw
	"delete"		kw
	"exit"		kw
	"close"		kw
	"getline"		kw
	"next"		kw
	"nextfile"		kw
	"print"		kw
	"printf"		kw
	"system"		kw
	"fflush"		kw
	"atan2"		kw
	"cos"		kw
	"exp"		kw
	"int"		kw
	"log"		kw
	"rand"		kw
	"sin"		kw
	"sqrt"		kw
	"srand"		kw
	"asort"		kw
	"asorti"		kw
	"gensub"		kw
	"gsub"		kw
	"index"		kw
	"length"		kw
	"match"		kw
	"split"		kw
	"sprintf"		kw
	"strtonum"		kw
	"sub"		kw
	"substr"		kw
	"tolower"		kw
	"toupper"		kw
	"mktime"		kw
	"strftime"		kw
	"systime"		kw
	"and"		kw
	"compl"		kw
	"lshift"		kw
	"or"		kw
	"rshift"		kw
	"xor"		kw
	"bindtextdomain"		kw
	"dcgettext"		kw
	"dcngettext"		kw
	"function"		kw
	"return"	kw
done
	"a-zA-Z0-9_"	ident

:kw Keyword
	*	idle	noeat
joe-3.5/syntax/c.jsf.in0000644000100100010020000002651310434336625010470 # JOE syntax highlight file for C and C++

# A (deterministic) state machine which performs lexical analysis of C.
# (This is the "assembly language" of syntax highlighting.  A separate
# program could be used to convert a regular expression NFA syntax into this
# format).

# Each state begins with ':<name> <color-name>'
# <color-name> is the color used for characters eaten by the state
# (really a symbol for a user definable color).

# The first state defined is the initial state.

# Within a state, define transitions (jumps) to other states.  Each
# jump has the form: <character-list> <target-state> [<option>s]

# There are three ways to specify <character-list>s, either * for any
# character not otherwise specified, & to match the character in the
# delimiter match buffer or a literal list of characters within quotes
# (ranges and escape sequences allowed).  When the next character matches
# any in the list, a jump to the target-state is taken and the character is
# eaten (we advance to the next character of the file to be colored).
#
# The * transition should be the first transition specified in the state.
#
# There are several options:
#   noeat     	do not eat the character, instead feed it to the next state
#             	(this tends to make the states smaller, but be careful: you
#		can make infinite loops).  'noeat' implies 'recolor=-1'.
#
#   recolor=-N	Recolor the past N characters with the color of the
#		target-state.  For example once /* is recognized as the
#		start of C comment, you want to color the /* with the C
#		comment color with recolor=-2.
#
#   mark	Mark beginning of a region with current position.
#
#   markend	Mark end of region.
#
#   recolormark Recolor all of the characters in the marked region with
#               the color of the target-state.  If markend is not given,
#		all of the characters up to the current position are recolored.
#		Note that the marked region can not cross line boundaries and
#               must be on the same line as recolormark.
#
#   buffer    	start copying characters to a string buffer, beginning with this
#		one (it's ok to not terminate buffering with a matching
#		'strings' option- the buffer is limited to leading 23
#		characters).
#
#   save_c      Save character in delimiter match buffer.
#
#   save_s      Copy string buffer to delimiter match buffer.
#
#   strings	A list of strings follows.  If the buffer matches any of the
#		given strings, a jump to the target-state in the string list
#		is taken instead of the normal jump.
#
#   istrings	Same as strings, but case is ignored.
#
#               Note: strings and istrings should be the last option on the
#		line.  They cause any options which follow them to be ignored.
#
#   hold        Stop buffering string- a future 'strings' or 'istrings' will
#               look at contents of buffer at this point.  Useful for distinguishing
#               commands and function calls in some languages 'write 7' is a command
#               'write (' is a function call- hold lets us stop at the space and delay
#               the string lookup until the ( or 7.
#
#   The format of the string list is:
#
#      "string"   <target-state> [<options>s]
#      "string"   <target-state> [<options>s]
#      "&"        <target-state> [<options>s]   # matches contents of delimiter match buffer
#      done
#
#   (all of the options above are allowed except "strings", "istrings" and "noeat".  noeat is
#    always implied after a matched string).
#
# Weirdness: only states have colors, not transitions.  This means that you
# sometimes have to make dummy states with '* next-state noeat' just to get
# a color specification.
#
# Delimiter match buffer is for perl and shell: a regex in perl can be s<..>(...)
# and in shell you can say: <<EOS ....... EOS

# New feature: subroutines

# Highlighter state machines can now make subroutine calls.  This works by
# template instantiation: the called state machine is included in your
# current state machine, but is modified so that the return address points
# to the called.  There is still no run-time stack (the state is represented
# as a single integer plus the saved delimiter string).

# Recursion is allowed, but is self limited to 5 levels.

# To call a subroutine, use the 'call' option:
#
#	"\""	fred	call=string(dquote)
#
# The subroutine called 'string' is called and the jump to 'fred' is
# ignored.  The 'dquote' option is passed to the subroutine.
#
# The subroutine itself returns to the caller like this:
#       "\""	whatever  return
#
# If we're in a subroutine, the return is made.  Otherwise the jump
# to 'whatever' is made.
#
# There are several ways of delimiting subroutines which show up in how it
# is called.  Here are the options:
#
# call=string()		  A file called string.jsf is the subroutine.
#                         The entire file is the subroutine.  The starting
#                         point is the first state in the file.
#
# call=library.string()	  A file called library.jsf has the subroutine.
#                         The subroutine within the file is called string.
#
# call=.string()          There is a subroutine called string in the current file.
#
# When a subroutine is within a file, but is not the whole file, it is delimited
# as follows:
#
#  .subr string
#
#  . . . states for string subroutine . . .
#
#  .end
#
# Option flags can be passed to subroutines which control preprocessor-like
# directives.  For example:
#
# .ifdef dquote
#    "\""	idle	return
# .endif
# .ifdef squote
#    "'"	idle 	return
# .endif
#
# .else if also available.  .ifdefs can be nested.


# Obsolete feature: the sync lines specification no longer matter.  We now always parse
# from the beginning of the file.  Here is the old description:
#
# Define no. sync lines
# You can say:
# -200     means 200 lines
# -        means always start parsing from beginning of file when we lose sync
#          if nothing is specified, the default is -50
-

# Define colors and attributes.  Give a list of attributes, one
# background color and one foreground color (default is used if
# color is left out).
#
# Attributes:
#   bold inverse blink dim underline
#
# Standard colors:
#
# Foreground:
#   white cyan magenta blue yellow green red black
#
# Background:
#   bg_white bg_cyan bg_magenta bg_blue bg_yellow bg_green bg_red bg_black
#
# For 16 color and 256 color xterms: "export TERM=xterm-16color", these
# brighter than normal colors are available:
#
# Note that you need an xterm which was compiled to support 16 or 256 colors
# and a matching termcap/terminfo entry for it.
#
# Foreground:
#   WHITE CYAN MAGENTA BLUE YELLOW GREEN RED BLACK
#
# Background:
#   bg_WHITE bg_CYAN bg_MAGENTA bg_BLUE bg_YELLOW bg_GREEN bg_RED bg_BLACK
#
# For 256 color xterm: "export TERM=xterm-256color", these become available:
#
# Note that you need an xterm which was compiled to support 256 colors and a
# matching termcap/terminfo entry for it.
#
# fg_RGB and bg_RGB, where R, G, and B range from 0 - 5.  So: fg_500 is bright red.
#
# fg_NN and bg_NN give shades of grey, where the intensity, NN, ranges from 0 - 23.

=Idle
=Bad		bold red
=Preproc 	blue
=Define		bold blue
=Comment 	green
=IncLocal	cyan
=IncSystem	bold cyan
=Constant 	cyan
=Escape 	bold cyan
=Type 		bold
=Keyword 	bold
=CppKeyword	bold
=Brace		magenta
=Control

:reset Idle
	*		first		noeat
	" \t"		reset

:first Idle
	*		idle		noeat
	"#"		pre		recolor=-1

:pre Preproc
	*		preproc		noeat
	" \t"		pre
	"a-z"		preident	recolor=-1 buffer

:preident Preproc
	*		preproc		noeat strings
	"define"	predef
	"include"	preinc
done
	"a-z"		preident

:preinc Preproc
	*		preinc
	" \t"		preinc_ws
	"\n"		reset
	
:preinc_ws Preproc
	*		prebad		recolor=-1
	" \t"		preinc_ws
	"\""		preinc_local	recolor=-1
	"<"		preinc_system	recolor=-1

:preinc_local IncLocal
	*		preinc_local
	"\"\n"		reset
	
:preinc_system IncSystem
	*		preinc_system
	">\n"		reset

:prebad	Bad	
	*		prebad
	"\n"		reset


:predef Preproc
	*		predef
	" \t"		predef_ws
	"\n"		reset
	
:predef_ws Preproc
	*		prebad		recolor=-1
	" \t"		predef_ws
	"a-zA-Z0-9_"	predef_ident	recolor=-1

:predef_ident Define
	*		idle		noeat
	"a-zA-Z0-9_"	predef_ident


:preproc Preproc
	*		preproc
	"\n"		reset
	"\\"		preproc_cont
	"/"		preproc_slash
	
:preproc_slash Preproc
	*		preproc		noeat
	"*"		comment		recolor=-2
	"/"		line_comment	recolor=-2
	
:preproc_cont Preproc
	*		preproc_cont
	"\n"		preproc

# All following states are for when we're not in a preprocessor line

:idle Idle
	*		idle
	"\n"		reset
	"/"		slash
	"0"		first_digit	recolor=-1
	"1-9"		decimal	recolor=-1
	"."		maybe_float
	"\""		string		recolor=-1
	"'"		char		recolor=-1
	"a-zA-Z_"	ident		buffer
	"\\"		outside_escape	recolor=-1
	"{}"		brace		recolor=-1
	",:;=()><[]*&|!~+\-%^"	control		recolor=-1

:outside_escape	Escape
	*	idle

:brace Brace
	*	idle	noeat

:control Control
	*	idle	noeat

:slash Idle
	*		idle		noeat recolor=-2	# Not sure about this
	"*"		comment		recolor=-2
	"/"		line_comment	recolor=-2

:comment Comment
	*		comment
	"*"		maybe_end_comment

:maybe_end_comment Comment
	*		comment
	"/"		idle
	"*"		maybe_end_comment

:line_comment Comment
	*		line_comment
	"\n"		reset

:first_digit Constant
	*		idle	noeat
	"xX"		hex
	"."		float
	"eE"		epart
	"0-7"		octal
	"89"		bad_number	recolor=-1

:bad_number Bad
	*		idle	noeat
	"0-9"		bad_number

:octal Constant
	*		idle	noeat
	"0-7"		octal
	"89"		bad_number	recolor=-1

:hex Constant
	*		idle	noeat
	"0-9A-Fa-f"	hex

:decimal Constant
	*		idle	noeat
	"0-9"		decimal
	"eE"		epart
	"."		float

:maybe_float Constant
	*		idle	recolor=-2	noeat
	"0-9"		float		recolor=-2

:float Constant
	*		idle	noeat
	"eE"		epart
	"0-9"		float

:epart Constant
	*		idle	noeat
	"0-9+\-"	enum

:enum Constant
	*		idle	noeat
	"0-9"		enum

:string	Constant
	*		string
	"\""		idle
	"\\"		string_escape	recolor=-1
	"%"		string_control	recolor=-1

:string_escape Escape
	*		string
	"x"		string_hex1
	"0-7"		string_octal2
	"\n"		string		recolor=-2

:string_hex1 Escape
	*		string		noeat
	"0-9a-fA-F"	string_hex2

:string_hex2 Escape
	*		string		noeat
	"0-9a-fA-F"	string

:string_octal2 Escape
	*		string		noeat
	"0-7"		string_octal3

:string_octal3 Escape
	*		string		noeat
	"0-7"		string

:string_control Escape
	*		string
	"\""		string noeat
	"\n"		reset
	"0-9.\-+ #hjILtz$"	string_control

:char Constant
	*		char
	"\n"		reset
	"'"		idle
	"\\"		char_escape	recolor=-1

:char_escape	Escape
	*		char
	"x"		char_hex1
	"0-7"		char_octal2
	"\n"		char		recolor=-2

:char_hex1 Escape
	*		char		noeat
	"0-9a-fA-F"	char_hex2

:char_hex2 Escape
	*		char		noeat
	"0-9a-fA-F"	char

:char_octal2 Escape
	*		char		noeat
	"0-7"		char_octal3

:char_octal3 Escape
	*		char		noeat
	"0-7"		char

:ident Idle
	*		idle		noeat strings
	"int"		type
	"float"		type
	"long"		type
	"short"		type
	"char"		type
	"double"	type
	"signed"	type
	"unsigned"	type
	"void"		type
	"static"	type
	"register"	type
	"extern"	type
	"inline"	type
	"auto"		type
	"const"		type
	"volatile"	type
	"if"		kw
	"else"		kw
	"while"		kw
	"for"		kw
	"break"		kw
	"continue"	kw
	"do"		kw
	"case"		kw
	"default"	kw
	"switch"	kw
	"goto"		kw
	"struct"	kw
	"enum"		kw
	"return"	kw
	"sizeof"	kw
	"typedef"	kw
	"union"		kw
	"asm"		kw
# C++ keywords
	"class"		cppkw
	"public"	cppkw
	"private"	cppkw
	"protected"	cppkw
	"friend"	cppkw
	"new"		cppkw
	"delete"	cppkw
	"bool"		cppkw
	"namespace"	cppkw
	"operator"	cppkw
	"template"	cppkw
	"catch"		cppkw
	"throw"		cppkw
	"try"		cppkw
	"typeof"	cppkw
done
	"a-zA-Z0-9_"	ident

:type Type
	*	idle	noeat

:kw Keyword
	*	idle	noeat

:cppkw CppKeyword
	*	idle	noeat
joe-3.5/syntax/cobol.jsf.in0000666000100100010020000002271610225535354011347 # JOE syntax highlight file for COBOL

=Idle
=Bad		bold red
=Preproc 	blue
=Define		bold blue
=Comment 	green
=IncLocal	cyan
=IncSystem	bold cyan
=Constant 	cyan
=Escape 	bold cyan
=Type 		bold
=Keyword 	bold

:reset Idle
	*		idle		noeat
	"*"		line_comment	recolor=-1
	" \t"		reset

:line_comment Comment
	*		line_comment
	"\n"		reset

# All following states are for when we're not in a preprocessor line

:idle Idle
	*		idle
	"\n"		reset
	"0"		first_digit	recolor=-1
	"1-9"		decimal	recolor=-1
	"."		maybe_float
	"\""		string		recolor=-1
	"'"		char		recolor=-1
	"a-zA-Z_"	ident		buffer

:first_digit Constant
	*		idle	noeat
	"xX"		hex
	"."		float
	"eE"		epart
	"0-7"		octal
	"89"		bad_number	recolor=-1

:bad_number Bad
	*		idle	noeat
	"0-9"		bad_number

:octal Constant
	*		idle	noeat
	"0-7"		octal
	"89"		bad_number	recolor=-1

:hex Constant
	*		idle	noeat
	"0-9A-Fa-f"	hex

:decimal Constant
	*		idle	noeat
	"0-9"		decimal
	"eE"		epart
	"."		float

:maybe_float Constant
	*		idle	recolor=-2	noeat
	"0-9"		float		recolor=-2

:float Constant
	*		idle	noeat
	"eE"		epart
	"0-9"		float

:epart Constant
	*		idle	noeat
	"0-9+\-"	enum

:enum Constant
	*		idle	noeat
	"0-9"		enum

:string	Constant
	*		string
	"\""		idle
	"\\"		string_escape	recolor=-1
	"%"		string_control	recolor=-1

:string_escape Escape
	*		string
	"x"		string_hex1
	"0-7"		string_octal2
	"\n"		string		recolor=-2

:string_hex1 Escape
	*		string		noeat
	"0-9a-fA-F"	string_hex2

:string_hex2 Escape
	*		string		noeat
	"0-9a-fA-F"	string

:string_octal2 Escape
	*		string		noeat
	"0-7"		string_octal3

:string_octal3 Escape
	*		string		noeat
	"0-7"		string

:string_control Escape
	*		string_control
	"\n"		reset
	"diouxXeEfFgGaAcspn%SC"	string

:char Constant
	*		char
	"\n"		reset
	"'"		idle
	"\\"		char_escape	recolor=-1

:char_escape	Escape
	*		char
	"x"		char_hex1
	"0-7"		char_octal2
	"\n"		char		recolor=-2

:char_hex1 Escape
	*		char		noeat
	"0-9a-fA-F"	char_hex2

:char_hex2 Escape
	*		char		noeat
	"0-9a-fA-F"	char

:char_octal2 Escape
	*		char		noeat
	"0-7"		char_octal3

:char_octal3 Escape
	*		char		noeat
	"0-7"		char

:ident Idle
	*		idle		noeat istrings
	"accept"	kw
	"access"	kw
	"add"	kw
	"address"	kw
	"advancing"	kw
	"after"	kw
	"all"	kw
	"allowing"	kw
	"alphabet"	kw
	"alphabetic"	kw
	"alphabetic-lower"	kw
	"alphabetic-upper"	kw
	"alphanumeric"	kw
	"alphanumeric-edited"	kw
	"also"	kw
	"alter"	kw
	"alternate"	kw
	"and"	kw
	"any"	kw
	"apply"	kw
	"are"	kw
	"area"	kw
	"areas"	kw
	"arithmetic"	kw
	"ascending"	kw
	"assign"	kw
	"at"	kw
	"author"	kw
	"automatic"	kw
	"b-and"	kw
	"b-exor"	kw
	"b-less"	kw
	"b-not"	kw
	"b-or"	kw
	"basis"	kw
	"before"	kw
	"beginning"	kw
	"binary"	kw
	"bit"	kw
	"bits"	kw
	"blank"	kw
	"block"	kw
	"boolean"	kw
	"bottom"	kw
	"by"	kw
	"call"	kw
	"cancel"	kw
	"cbl"	kw
	"cd"	kw
	"cf"	kw
	"ch"	kw
	"character"	kw
	"characters"	kw
	"class"	kw
	"class-id"	kw
	"clock-units"	kw
	"close"	kw
	"cobol"	kw
	"code"	kw
	"code-set"	kw
	"collating"	kw
	"column"	kw
	"com-reg"	kw
	"comma"	kw
	"commit"	kw
	"common"	kw
	"communication"	kw
	"comp"	kw
	"comp-1"	kw
	"comp-2"	kw
	"comp-3"	kw
	"comp-4"	kw
	"comp-5"	kw
	"comp-6"	kw
	"comp-7"	kw
	"comp-8"	kw
	"comp-9"	kw
	"computational"	kw
	"computational-1"	kw
	"computational-2"	kw
	"computational-3"	kw
	"computational-4"	kw
	"computational-5"	kw
	"computational-6"	kw
	"computational-7"	kw
	"computational-8"	kw
	"computational-9"	kw
	"compute"	kw
	"configuration"	kw
	"connect"	kw
	"contained"	kw
	"contains"	kw
	"content"	kw
	"continue"	kw
	"control"	kw
	"controls"	kw
	"converting"	kw
	"copy"	kw
	"corr"	kw
	"corresponding"	kw
	"count"	kw
	"currency"	kw
	"current"	kw
	"cycle"	kw
	"data"	kw
	"date"	kw
	"date-compiled"	kw
	"date-written"	kw
	"day"	kw
	"day-of-week"	kw
	"db"	kw
	"db-access-control-key"	kw
	"db-data-name"	kw
	"db-exception"	kw
	"db-record-name"	kw
	"db-set-name"	kw
	"db-status"	kw
	"dbcs"	kw
	"de"	kw
	"debug-contents"	kw
	"debug-item"	kw
	"debug-line"	kw
	"debug-name"	kw
	"debug-sub-1"	kw
	"debug-sub-2"	kw
	"debug-sub-3"	kw
	"debugging"	kw
	"decimal-point"	kw
	"declaratives"	kw
	"default"	kw
	"delete"	kw
	"delimited"	kw
	"delimiter"	kw
	"depending"	kw
	"descending"	kw
	"destination"	kw
	"detail"	kw
	"disable"	kw
	"disconnect"	kw
	"display"	kw
	"display-1"	kw
	"display-2"	kw
	"display-3"	kw
	"display-4"	kw
	"display-5"	kw
	"display-6"	kw
	"display-7"	kw
	"display-8"	kw
	"display-9"	kw
	"divide"	kw
	"division"	kw
	"down"	kw
	"duplicate"	kw
	"duplicates"	kw
	"dynamic"	kw
	"egcs"	kw
	"egi"	kw
	"eject"	kw
	"else"	kw
	"emi"	kw
	"empty"	kw
	"enable"	kw
	"end"	kw
	"end-add"	kw
	"end-call"	kw
	"end-compute"	kw
	"end-delete"	kw
	"end-disable"	kw
	"end-divide"	kw
	"end-enable"	kw
	"end-evaluate"	kw
	"end-if"	kw
	"end-invoke"	kw
	"end-multiply"	kw
	"end-of-page"	kw
	"end-perform"	kw
	"end-read"	kw
	"end-receive"	kw
	"end-return"	kw
	"end-rewrite"	kw
	"end-search"	kw
	"end-send"	kw
	"end-start"	kw
	"end-string"	kw
	"end-subtract"	kw
	"end-transceive"	kw
	"end-unstring"	kw
	"end-write"	kw
	"ending"	kw
	"enter"	kw
	"entry"	kw
	"environment"	kw
	"eop"	kw
	"equal"	kw
	"equals"	kw
	"erase"	kw
	"error"	kw
	"esi"	kw
	"evaluate"	kw
	"every"	kw
	"exact"	kw
	"exceeds"	kw
	"exception"	kw
	"exclusive"	kw
	"exit"	kw
	"extend"	kw
	"external"	kw
	"false"	const
	"fd"	kw
	"fetch"	kw
	"file"	kw
	"file-control"	kw
	"filler"	kw
	"final"	kw
	"find"	kw
	"finish"	kw
	"first"	kw
	"footing"	kw
	"for"	kw
	"form"	kw
	"format"	kw
	"free"	kw
	"from"	kw
	"function"	kw
	"generate"	kw
	"get"	kw
	"giving"	kw
	"global"	kw
	"go"	kw
	"goback"	kw
	"greater"	kw
	"group"	kw
	"heading"	kw
	"high-value"	const
	"high-values"	const
	"i-o"	kw
	"i-o-control"	kw
	"id"	kw
	"identification"	kw
	"if"	kw
	"in"	kw
	"index"	kw
	"index-1"	kw
	"index-2"	kw
	"index-3"	kw
	"index-4"	kw
	"index-5"	kw
	"index-6"	kw
	"index-7"	kw
	"index-8"	kw
	"index-9"	kw
	"indexed"	kw
	"indicate"	kw
	"inherits"	kw
	"initial"	kw
	"initialize"	kw
	"initiate"	kw
	"input"	kw
	"input-output"	kw
	"insert"	kw
	"inspect"	kw
	"installation"	kw
	"into"	kw
	"invalid"	kw
	"invoke"	kw
	"is"	kw
	"just"	kw
	"justified"	kw
	"kanji"	kw
	"keep"	kw
	"key"	kw
	"label"	kw
	"last"	kw
	"ld"	kw
	"leading"	kw
	"left"	kw
	"length"	kw
	"less"	kw
	"limit"	kw
	"limits"	kw
	"linage"	kw
	"linage-counter"	kw
	"line"	kw
	"line-counter"	kw
	"lines"	kw
	"linkage"	kw
	"locally"	kw
	"local-storage"	kw
	"lock"	kw
	"low-value"	const
	"low-values"	const
	"member"	kw
	"memory"	kw
	"merge"	kw
	"message"	kw
	"metaclass"	kw
	"method"	kw
	"method-id"	kw
	"mode"	kw
	"modify"	kw
	"modules"	kw
	"more-labels"	kw
	"move"	kw
	"multiple"	kw
	"multiply"	kw
	"native"	kw
	"negative"	kw
	"next"	kw
	"no"	kw
	"normal"	kw
	"not"	kw
	"null"	const
	"nulls"	const
	"number"	kw
	"numeric"	kw
	"numeric-edited"	kw
	"object"	kw
	"object-computer"	kw
	"occurs"	kw
	"of"	kw
	"off"	kw
	"omitted"	kw
	"on"	kw
	"only"	kw
	"open"	kw
	"optional"	kw
	"or"	kw
	"order"	kw
	"organization"	kw
	"other"	kw
	"output"	kw
	"overflow"	kw
	"override"	kw
	"owner"	kw
	"packed-decimal"	kw
	"padding"	kw
	"page"	kw
	"page-counter"	kw
	"paragraph"	kw
	"password"	kw
	"perform"	kw
	"pf"	kw
	"ph"	kw
	"pic"	kw
	"picture"	kw
	"plus"	kw
	"pointer"	kw
	"position"	kw
	"positive"	kw
	"present"	kw
	"previous"	kw
	"printing"	kw
	"prior"	kw
	"procedure"	kw
	"procedure-pointer"	kw
	"procedures"	kw
	"proceed"	kw
	"processing"	kw
	"program"	kw
	"program-id"	kw
	"protected"	kw
	"purge"	kw
	"queue"	kw
	"quote"	const
	"quotes"	const
	"random"	kw
	"rd"	kw
	"read"	kw
	"ready"	kw
	"realm"	kw
	"receive"	kw
	"reconnect"	kw
	"record"	kw
	"record-name"	kw
	"recording"	kw
	"records"	kw
	"recursive"	kw
	"redefines"	kw
	"reel"	kw
	"reference"	kw
	"references"	kw
	"relation"	kw
	"relative"	kw
	"release"	kw
	"reload"	kw
	"remainder"	kw
	"removal"	kw
	"renames"	kw
	"repeated"	kw
	"replace"	kw
	"replacing"	kw
	"report"	kw
	"reporting"	kw
	"reports"	kw
	"repository"	kw
	"rerun"	kw
	"reserve"	kw
	"reset"	kw
	"retaining"	kw
	"retrieval"	kw
	"return"	kw
	"return-code"	kw
	"returning"	kw
	"reversed"	kw
	"rewind"	kw
	"rewrite"	kw
	"rf"	kw
	"rh"	kw
	"right"	kw
	"rollback"	kw
	"rounded"	kw
	"run"	kw
	"same"	kw
	"sd"	kw
	"search"	kw
	"section"	kw
	"security"	kw
	"segment"	kw
	"segment-limit"	kw
	"select"	kw
	"self"	kw
	"send"	kw
	"sentence"	kw
	"separate"	kw
	"sequence"	kw
	"sequential"	kw
	"service"	kw
	"session-id"	kw
	"set"	kw
	"shared"	kw
	"shift-in"	kw
	"shift-out"	kw
	"sign"	kw
	"size"	kw
	"skip1"	kw
	"skip2"	kw
	"skip3"	kw
	"sort"	kw
	"sort-control"	kw
	"sort-core-size"	kw
	"sort-file-size"	kw
	"sort-merge"	kw
	"sort-message"	kw
	"sort-mode-size"	kw
	"sort-return"	kw
	"source"	kw
	"source-computer"	kw
	"space"	const
	"spaces"	const
	"special-names"	kw
	"standard"	kw
	"standard-1"	kw
	"standard-2"	kw
	"standard-3"	kw
	"standard-4"	kw
	"start"	kw
	"status"	kw
	"stop"	kw
	"store"	kw
	"string"	kw
	"sub-queue-1"	kw
	"sub-queue-2"	kw
	"sub-queue-3"	kw
	"sub-schema"	kw
	"subtract"	kw
	"sum"	kw
	"super"	kw
	"suppress"	kw
	"symbolic"	kw
	"sync"	kw
	"synchronized"	kw
	"table"	kw
	"tally"	kw
	"tallying"	kw
	"tape"	kw
	"tenant"	kw
	"terminal"	kw
	"terminate"	kw
	"test"	kw
	"text"	kw
	"than"	kw
	"then"	kw
	"through"	kw
	"thru"	kw
	"time"	kw
	"timeout"	kw
	"times"	kw
	"title"	kw
	"to"	kw
	"top"	kw
	"trace"	kw
	"trailing"	kw
	"transceive"	kw
	"true"	const
	"type"	kw
	"unequal"	kw
	"unit"	kw
	"unstring"	kw
	"until"	kw
	"up"	kw
	"update"	kw
	"upon"	kw
	"usage"	kw
	"usage-mode"	kw
	"use"	kw
	"using"	kw
	"valid"	kw
	"validate"	kw
	"value"	kw
	"values"	kw
	"varying"	kw
	"wait"	kw
	"when"	kw
	"when-compiled"	kw
	"with"	kw
	"within"	kw
	"words"	kw
	"working-storage"	kw
	"write"	kw
	"write-only"	kw
	"zero"	const
	"zeroes"	const
	"zeros"	const
done
	"a-zA-Z0-9_\-"	ident

:kw Keyword
	*	idle	noeat

:const Constant
	*	idle	noeat
joe-3.5/syntax/conf.jsf.in0000666000100100010020000000101210430766712011162 # JOE syntax highlight file for typical UNIX configuration files

=Idle
=Comment 	green
=String 	cyan
=Escape 	bold cyan

:idle Idle
	*		idle
	"#"		comment		recolor=-1
	"\""		string		recolor=-1
	"'"		single		recolor=-1

:comment Comment
	*		comment
	"\n"		idle

:string String
	*		string
	"\""		idle
	"\\"		string_escape	recolor=-1

:string_escape Escape
	*		string
	"\n"		string		recolor=-2

:single String
	*		single
	"'"		idle
	"\\"		single_escape	recolor=-1

:single_escape Escape
	*		single
	"\n"		single		recolor=-2
joe-3.5/syntax/csh.jsf.in0000666000100100010020000000726510047724216011027 # JOE syntax highlight file for csh

# needs work: I just copied this from sh and
# changed the keywords.

# Colors

=Idle
=Comment 	green
=Constant 	cyan
=Escape 	bold cyan
=Keyword 	bold
=Var		magenta

# Syntax

:idle Idle
	*		idle
	"#"		comment		recolor=-1
	"\\"		escape		recolor=-1
	"$"		subst		recolor=-1
	"'"		string_sq	recolor=-1
	"\""		string_dq	recolor=-1
	"\`"		string_bq	recolor=-1
	"a-zA-Z{}!["	ident		buffer

:comment Comment
	*		comment
	"\n"		idle

:escape Escape
	*		idle

:subst Var
	*		idle
	"{"		subst_brack
	"a-zA-Z_"	subst_name
	"0-9*@?\-$_!"	idle

:subst_name Var
	*		idle		noeat recolor=-1
	"a-zA-Z0-9_"	subst_name

:subst_brack Var
	*		subst_brack
	"}"		idle

# Simplest case: no quoting allowed
:string_sq Constant
	*		string_sq
	"\'"		idle


# double-quote: quoting, backqoutes and substitution allowed
:string_dq Constant
	*		string_dq
	"$"		string_dq_subst	recolor=-1
	"\""		idle
	"\\"		string_dq_esc	recolor=-1
	"`"		string_dq_bq	recolor=-1

:string_dq_subst Var
	*		string_dq	noeat recolor=-2
	"$0-9!_\-?*@"	string_dq
	"a-zA-Z_"	string_dq_subst_name
	"{"		string_dq_subst_brack

:string_dq_subst_name Var
	*		string_dq	recolor=-1 noeat
	"a-zA-Z0-9_"	string_dq_subst_name

:string_dq_subst_brack Var
	*		string_dq_subst_brack
	"}"		string_dq

:string_dq_esc Escape
	*		string_dq	recolor=-2
	"$`\"\\"	string_dq
	"\n"		string_dq	recolor=-2

:string_dq_bq Constant
	*		string_dq_bq
	"$"		string_dq_bq_subst	recolor=-1
	"\`"		string_dq
	"\\"		string_dq_bq_esc	recolor=-1

:string_dq_bq_subst Var
	*		string_dq_bq	noeat recolor=-2
	"$0-9!_\-?*@"	string_dq_bq
	"a-zA-Z_"	string_dq_bq_subst_name
	"{"		string_dq_bq_subst_brack

:string_dq_bq_subst_name Var
	*		string_dq_bq	recolor=-1 noeat
	"a-zA-Z0-9_"	string_dq_bq_subst_name

:string_dq_bq_subst_brack Var
	*		string_dq_bq_subst_brack
	"}"		string_dq_bq

:string_dq_bq_esc Escape
	*		string_dq_bq	recolor=-2
	"$`\"\\"	string_dq_bq
	"\n"		string_dq_bq	recolor=-2


# backquote
:string_bq Constant
	*		string_bq
	"$"		string_bq_subst	recolor=-1
	"\`"		idle
	"\\"		string_bq_esc	recolor=-1

# escape in backquote
:string_bq_esc Escape
	*		string_bq	recolor=-2
	"$`\"\\"	string_bq
	"\n"		string_bq	recolor=-2

# Substitution in a backquote
:string_bq_subst Var
	*		string_bq	noeat recolor=-2
	"$0-9!_\-?*@"	string_bq
	"a-zA-Z_"	string_bq_subst_name
	"{"		string_bq_subst_brack

:string_bq_subst_name Var
	*		string_bq	recolor=-1 noeat
	"a-zA-Z0-9_"	string_bq_subst_name

:string_bq_subst_brack Var
	*		string_bq_subst_brack
	"}"		string_bq


:ident Idle
	*		idle		noeat strings
	"!"		kw
	"{"		kw
	"}"		kw
	"["		kw
	"]"		kw
	"alias"		kw
	"alloc"		kw
	"bg"		kw
	"bindkey"	kw
	"break"		kw
	"breaksw"	kw
	"builtins"	kw
	"bye"		kw
	"case"		kw
	"cd"		kw
	"chdir"		kw
	"complete"	kw
	"continue"	kw
	"default"	kw
	"dirs"		kw
	"echo"		kw
	"echotc"	kw
	"else"		kw
	"end"		kw
	"endif"		kw
	"endsw"		kw
	"eval"		kw
	"exec"		kw
	"exit"		kw
	"fg"		kw
	"filetest"	kw
	"foreach"	kw
	"getspath"	kw
	"getxvers"	kw
	"glob"		kw
	"goto"		kw
	"hashstat"	kw
	"history"	kw
	"hup"		kw
	"if"		kw
	"inlib"		kw
	"jobs"		kw
	"kill"		kw
	"limit"		kw
	"log"		kw
	"login"		kw
	"logout"	kw
	"ls-F"		kw
	"migrate"	kw
	"newgrp"	kw
	"nice"		kw
	"nohup"		kw
	"notify"	kw
	"onintr"	kw
	"popd"		kw
	"printenv"	kw
	"pushd"		kw
	"rehash"	kw
	"repeat"	kw
	"rootnode"	kw
	"sched"		kw
	"set"		kw
	"setenv"	kw
	"setpath"	kw
	"setspath"	kw
	"settc"		kw
	"setty"		kw
	"setxvers"	kw
	"shift"		kw
	"source"	kw
	"stop"		kw
	"suspend"	kw
	"switch"	kw
	"case"		kw
	"telltc"	kw
	"time"		kw
	"umask"		kw
	"unalias"	kw
	"uncomplete"	kw
	"unhash"	kw
	"universe"	kw
	"unlimit"	kw
	"unset"		kw
	"unsetenv"	kw
	"ver"		kw
	"wait"		kw
	"warp"		kw
	"watchdog"	kw
	"where"		kw
	"which"		kw
	"while"		kw
done
	"a-zA-Z0-9\-"	ident

:kw Keyword
	*	idle	noeat
joe-3.5/syntax/css.jsf.in0000644000100100010020000000305710434336625011034 # JOE syntax highlight file for CSS
# by Eric Lin

-

# Define colors

=Idle
=Comment 	green
=Class 	cyan
=Id red
=Tag  magenta
=Keyword  bold white
=HTML

:begin Idle
	*	begin	noeat call=.css()

#
# For <style> in html
#

.subr css

:reset HTML
	*		  reset
	"<"	maybe_done
	"/"		slash
	"#"   id_block recolor=-1
	"."   class_block recolor=-1
	"a-zA-Z"  tag_block recolor=-1

:maybe_done HTML
	*	reset noeat
	"/"	reset noeat return recolor=-2

:slash Idle
	*		reset		noeat
	"*"		comment		recolor=-2

:comment Comment
	*		comment
	"*"		maybe_end_comment

:maybe_end_comment Comment
	*		comment
	"/"		reset
	"*"		maybe_end_comment

:id_block Id
  *   id_block
  " " id_block_reset
  "{" style_block recolor=-1

:id_block_reset Idle
  *   id_block
  "a-zA-Z"  tag_block recolor=-1
  "." class_block recolor=-1
  "#" id_block  recolor=-1
  "{" style_block recolor=-1
   
:class_block  Class
  *   class_block
  " " tag_block
  "{" style_block recolor=-1
  
:tag_block  Tag 
  *   tag_block
  "{" style_block recolor=-1
  "," tag_sep recolor=-1
  
:tag_sep  Idle
  * tag_block recolor=-1

:style_block  Idle
  * style_block
  "}" reset
  "/" maybe_style_comment
  "a-zA-Z-"  style_word  recolor=-1

:style_word Keyword
  * style_word
  ":" style_value  recolor=-1

:style_value Idle
  * style_value
  ";" style_block 
  
:maybe_style_comment  Idle
  * style_block recolor=-1
  "*" style_comment recolor=-2

:style_comment  Comment
  *   style_comment
  "*" maybe_end_style_comment
  
:maybe_end_style_comment  Comment
  *   comment
  "/" style_block
  "*" maybe_end_style_comment
  
.end
joe-3.5/syntax/diff.jsf.in0000666000100100010020000000260310430766712011154 # JOE syntax highlight file for diff/patch files
# 2004-05-11 Tom Marshall <tommy@home.tig-grr.com>

# Start from beginning of file when sync is lost
-

# Color definitions
=Idle
=Options	blue
=FileNew	bold green
=FileOld	bold red
=DiffStuff	magenta
=DelLine	red
=AddLine	green
=Unchanged

:reset Idle
	*		goo
	"\n"		reset
	"d"		goo		buffer
	"-"		preudiff	buffer
	"*"		precdiff	buffer
	"0-9"		ndiff		recolor=-1

# Unified diff?
:preudiff Idle
	*		goo		strings
	"---"		udiffold	recolor=-3
done
	"-"		preudiff

# Context diff?
:precdiff Idle
	*		goo		strings
	"***"		cdiffbegin	recolor=-3
done
	"*"		precdiff

:options Options
	*		options
	"\n"		reset

:goo Idle
	*		goo		strings
	"diff"		options		recolor=-4
done
	"\n"		reset

:udiff Idle
	*		reset
	"-"		udiffold	recolor=-1
	"+"		udiffnew	recolor=-1
	"@"		udiffhunkbegin	recolor=-1
	"\n"		reset

:udiffold FileOld
	*		udiffold
	"\n"		udiff

:udiffnew FileNew
	*		udiffnew
	"\n"		udiff

:udiffhunkbegin DiffStuff
	*		udiffhunkbegin
	"\n"		udiffhunk

:udiffhunk Idle
	*		reset
	"d"		goo		buffer
	"-"		udiffoldordel	recolor=-1
	"+"		udiffadd	recolor=-1
	" "		udiffctx	recolor=-1
	"@"		udiffhunkbegin	recolor=-1

:udiffoldordel Idle
	*		udiffdel	recolor=-2
	"\n"		udiffdel	recolor=-2 noeat
	"-"		udiffold	recolor=-2

:udiffdel DelLine
	*		udiffdel
	"\n"		udiffhunk

:udiffadd AddLine
	*		udiffadd
	"\n"		udiffhunk

:udiffctx Unchanged
	*		udiffctx
	"\n"		udiffhunk
joe-3.5/syntax/fortran.jsf.in0000666000100100010020000003142310044545004011707 # JOE syntax highlight file for FORTRAN
# Heavily improved by: Malte Thoma (thoma@uni-muenster.de)

# Bugs:
#  in:  4.  eq.   -- does not recognize the .eq.
#  needs more intrinsics.

=Idle
=Comment 	green
=Constant 	cyan
=Type 		red
=Keyword 	bold 
=Intrinsic	magenta
=Preproc        blue
=Operator	magenta
=Bad		bold red

# First character of line...

:reset Idle
	*		idle		noeat
	"\n"		reset
	"cC*"		comment		recolor=-1
	"#"		pre		recolor=-1

:pre	Preproc					
	*		pre				
	"\n"		reset			
	
:comment Comment
	*		comment
	"\n"		reset

:idle Idle
	*		idle
	"!"		comment		recolor=-1
	"\n"		reset
	"0-9"		first_number	recolor=-1
	"."		have_dot
	"'"		string		recolor=-1
	"a-zA-Z_"	ident		buffer

:first_number Constant
	*		idle	noeat
	"0-9"		first_number
	"."		second_start
	"eEdD"		epart

:have_dot Constant
	*		idle	recolor=-2	noeat
	"0-9"		second_number		recolor=-2
	" \ta-zA-Z"	operator1	noeat recolor=-2

# Color the left .

:operator1 Operator
	*	operator	buffer noeat
	" \t"	operator1

# Default color is Idle for unknown operator

:operator Idle
	*		idle	noeat
	"a-zA-Z"	operator
	". \t"		unknown	noeat istrings
	"gt"		op
	"ge"		op
	"eq"		op
	"le"		op
	"ne"		op
	"lt"		op
	"and"		op
	"or"		op
	"llt"		op
	"lle"		op
	"lgt"		op
	"lge"		op
	"not"		op
	"false"		const
	"true"		const
done

# Eat the right .

:unknown Operator
	*	idle
	" \t"	unknown

:op Operator
	*	idle
	" \t"	op

:const Constant
	*	idle
	"."	op noeat
	" \t"	const

# For distrinuishing between 4.e1 and 4.eq.

:second_start Constant
	*	idle	noeat
	"a-zA-Z"	operator1	noeat recolor=-2
	"dD"	epart
	"eE"	epart1
	"0-9"	second_number

:epart1 Constant
	*		idle	noeat
	"q"		epart2
	"0-9+\-"	enum

:epart2	Idle
	*		idle	noeat
	". \t"		op	noeat recolor=-4

:second_number Constant
	*		idle	noeat
	"eEdD"		epart
	"0-9"		second_number

:epart Constant
	*		idle	noeat
	"0-9+\-"	enum

:enum Constant
	*		idle	noeat
	"0-9"		enum

:string	Constant
	*		string
	"\n"		reset
	"'"		maybe_end_string

:maybe_end_string Constant
	*		idle	noeat
	"'"		string

:ident Idle
	*		idle		noeat istrings
	"allocate"	kw
	"allocatable"	kw
	"assign"	kw
	"assignment"	kw
	"backspace"	kw
	"block"		kw
	"blockdata"	kw
	"call"		kw
	"case"		kw
	"character"	type
	"close"		kw
	"common"	kw
	"complex"	type
	"contains"	kw
	"continue"	kw
	"cycle"		kw
	"data"		kw
	"deallocate"	kw
	"default"	kw
	"dimension"	type
	"do"		kw
	"double"	type
	"doubleprecision"	type
	"elemental"	kw
	"else"		kw
	"elseif"	kw
	"elsewhere"	kw
	"end"		kw
	"endblock"	kw
	"endblockdata"	kw
	"enddo"		kw
	"endfile"	kw
	"endforall"	kw
	"endif"		kw
	"endinterface"	kw
	"endmodule"	kw
	"endselect"	kw
	"endtype"	kw
	"endwhere"	kw
	"entry"		kw
	"equivalence"	kw
	"exit"		kw
	"external"	kw
	"forall"	kw
	"format"	kw
	"function"	kw
	"go"		kw
	"goto"		kw
	"if"		kw
	"implicit"	kw
	"implicit"	kw
	"in"		kw
	"inout"		kw
	"inquire"	kw
	"integer"	type
	"intent"	kw
	"interface"	kw
	"intrinsic"	kw
	"iolength"	kw
	"kind"		kw
	"logical"	type
	"module"	kw
	"namelist"	kw
	"none"		kw
	"nullify"	kw
	"only"		kw
	"open"		kw
	"optional"	kw
	"out"		kw
	"parameter"	kw
	"pause"		kw
	"pointer"	kw
	"precision"	type
	"print"		kw
	"private"	kw
	"procedure"	kw
	"program"	kw
	"publc"		kw
	"public"	kw
	"pure"		kw
	"read"		kw
	"real"		type
	"recursive"	kw
	"result"	kw
	"return"	kw
	"rewind"	kw
	"save"		kw
	"select"	kw
	"selectcase"	kw
	"sequence"	kw
	"stat"		kw
	"stop"		kw
	"subroutine"	kw
	"target"	kw
	"then"		kw
	"to"		kw
	"type"		kw
	"use"		kw
	"where"		kw
	"while"		kw
	"write"		kw
done
	"("		idle	noeat istrings
# Keywords have to be duplicated here...
	"allocate"	kw
	"allocatable"	kw
	"assign"	kw
	"assignment"	kw
	"backspace"	kw
	"block"		kw
	"blockdata"	kw
	"call"		kw
	"case"		kw
	"character"	kw
	"close"		kw
	"common"	kw
	"complex"	kw
	"contains"	kw
	"continue"	kw
	"cycle"		kw
	"data"		kw
	"deallocate"	kw
	"default"	kw
	"dimension"	type
	"do"		kw
	"double"	type
	"doubleprecision"	type
	"elemental"	kw
	"else"		kw
	"elseif"	kw
	"elsewhere"	kw
	"end"		kw
	"endblock"	kw
	"endblockdata"	kw
	"enddo"		kw
	"endfile"	kw
	"endforall"	kw
	"endif"		kw
	"endinterface"	kw
	"endmodule"	kw
	"endselect"	kw
	"endtype"	kw
	"endwhere"	kw
	"entry"		kw
	"equivalence"	kw
	"exit"		kw
	"external"	kw
	"forall"	kw
	"format"	kw
	"function"	kw
	"go"		kw
	"goto"		kw
	"if"		kw
	"implicit"	kw
	"implicit"	kw
	"in"		kw
	"inout"		kw
	"inquire"	kw
	"integer"	kw
	"intent"	kw
	"interface"	kw
	"intrinsic"	kw
	"iolength"	kw
	"kind"		kw
	"logical"	type
	"module"	kw
	"namelist"	kw
	"none"		kw
	"nullify"	kw
	"only"		kw
	"open"		kw
	"optional"	kw
	"out"		kw
	"parameter"	kw
	"pause"		kw
	"pointer"	kw
	"precision"	type
	"print"		kw
	"private"	kw
	"procedure"	kw
	"program"	kw
	"publc"		kw
	"public"	kw
	"pure"		kw
	"read"		kw
	"real"		kw
	"recursive"	kw
	"result"	kw
	"return"	kw
	"rewind"	kw
	"save"		kw
	"select"	kw
	"selectcase"	kw
	"sequence"	kw
	"stat"		kw
	"stop"		kw
	"subroutine"	kw
	"target"	kw
	"then"		kw
	"to"		kw
	"type"		kw
	"use"		kw
	"where"		kw
	"while"		kw
	"write"		kw
# Here are instrinsics
	"abs"		intrinsic
	"achar"		intrinsic
	"acos"		intrinsic
	"adjustl"		intrinsic
	"adjustr"		intrinsic
	"aimag"		intrinsic
	"aint"		intrinsic
	"all"		intrinsic
	"allocated"		intrinsic
	"alog"		intrinsic
	"alog10"	intrinsic
	"anint"		intrinsic
	"any"		intrinsic
	"asin"		intrinsic
	"associated"		intrinsic
	"atan"		intrinsic
	"atan2"		intrinsic
	"bit_size"		intrinsic
	"btest"		intrinsic
	"ceiling"		intrinsic
	"char"		intrinsic
	"cmplx"		intrinsic
	"conjg"		intrinsic
	"cos"		intrinsic
	"cosh"		intrinsic
	"count"		intrinsic
	"cpu_time"		intrinsic
	"cshift"		intrinsic
	"date_and_time"		intrinsic
	"dble"		intrinsic
	"digits"		intrinsic
	"dim"		intrinsic
	"dot_product"		intrinsic
	"dprod"		intrinsic
	"eoshift"		intrinsic
	"epsilon"		intrinsic
	"exp"		intrinsic
	"exponent"		intrinsic
	"false"		intrinsic
	"floor"		intrinsic
	"float"		intrinsic
	"fraction"		intrinsic
	"huge"		intrinsic
	"iachar"		intrinsic
	"iand"		intrinsic
	"ibclr"		intrinsic
	"ibits"		intrinsic
	"ibset"		intrinsic
	"ichar"		intrinsic
	"ieor"		intrinsic
	"index"		intrinsic
	"int"		intrinsic
	"int2"		intrinsic
	"ior"		intrinsic
	"ishft"		intrinsic
	"ishftc"		intrinsic
	"kind"		intrinsic
	"lbound"		intrinsic
	"len"		intrinsic
	"len_trim"		intrinsic
	"lge"		intrinsic
	"lgt"		intrinsic
	"lle"		intrinsic
	"llt"		intrinsic
	"log"		intrinsic
	"log10"		intrinsic
	"matmul"		intrinsic
	"max"		intrinsic
	"maxexponent"		intrinsic
	"maxloc"		intrinsic
	"maxval"		intrinsic
	"merge"		intrinsic
	"min"		intrinsic
	"minexponent"		intrinsic
	"minloc"		intrinsic
	"minval"		intrinsic
	"mod"		intrinsic
	"modulo"		intrinsic
	"mvbits"		intrinsic
	"nearest"		intrinsic
	"nint"		intrinsic
	"not"		intrinsic
	"null"		intrinsic
	"pack"		intrinsic
	"present"		intrinsic
	"product"		intrinsic
	"radix"		intrinsic
	"random_number"		intrinsic
	"random_seed"		intrinsic
	"range"		intrinsic
	"real"		intrinsic
	"repeat"		intrinsic
	"reshape"		intrinsic
	"rrspacing"		intrinsic
	"scale"		intrinsic
	"scan"		intrinsic
	"selected_int_kind"		intrinsic
	"selected_real_kind"		intrinsic
	"set_exponent"		intrinsic
	"shape"		intrinsic
	"sign"		intrinsic
	"sin"		intrinsic
	"sinh"		intrinsic
	"size"		intrinsic
	"spacing"		intrinsic
	"spread"		intrinsic
	"sqrt"		intrinsic
	"sum"		intrinsic
	"system_clock"		intrinsic
	"tan"		intrinsic
	"tanh"		intrinsic
	"tiny"		intrinsic
	"transfer"		intrinsic
	"transpose"		intrinsic
	"trim"		intrinsic
	"true"		intrinsic
	"ubound"		intrinsic
	"unpack"		intrinsic
	"verify"		intrinsic
done
	"a-zA-Z0-9_"	ident
	" \t"	ws_ident	hold


# Whitespace after an identifier... we wait to see if there is a "("
:ws_ident Idle
	*		idle		noeat istrings
	"allocate"	kw
	"allocatable"	kw
	"assign"	kw
	"assignment"	kw
	"backspace"	kw
	"block"		kw
	"blockdata"	kw
	"call"		kw
	"case"		kw
	"character"	type
	"close"		kw
	"common"	kw
	"complex"	type
	"contains"	kw
	"continue"	kw
	"cycle"		kw
	"data"		kw
	"deallocate"	kw
	"default"	kw
	"dimension"	type
	"do"		kw
	"double"	type
	"doubleprecision"	type
	"elemental"	kw
	"else"		kw
	"elseif"	kw
	"elsewhere"	kw
	"end"		kw
	"endblock"	kw
	"endblockdata"	kw
	"enddo"		kw
	"endfile"	kw
	"endforall"	kw
	"endif"		kw
	"endinterface"	kw
	"endmodule"	kw
	"endselect"	kw
	"endtype"	kw
	"endwhere"	kw
	"entry"		kw
	"equivalence"	kw
	"exit"		kw
	"external"	kw
	"forall"	kw
	"format"	kw
	"function"	kw
	"go"		kw
	"goto"		kw
	"if"		kw
	"implicit"	kw
	"in"		kw
	"inout"		kw
	"inquire"	kw
	"integer"	type
	"intent"	kw
	"interface"	kw
	"intrinsic"	kw
	"iolength"	kw
	"kind"		kw
	"logical"	type
	"module"	kw
	"namelist"	kw
	"none"		kw
	"nullify"	kw
	"only"		kw
	"open"		kw
	"optional"	kw
	"out"		kw
	"parameter"	kw
	"pause"		kw
	"pointer"	kw
	"precision"	type
	"print"		kw
	"private"	kw
	"procedure"	kw
	"program"	kw
	"publc"		kw
	"public"	kw
	"pure"		kw
	"read"		kw
	"real"		type
	"recursive"	kw
	"result"	kw
	"return"	kw
	"rewind"	kw
	"save"		kw
	"select"	kw
	"selectcase"	kw
	"sequence"	kw
	"stat"		kw
	"stop"		kw
	"subroutine"	kw
	"target"	kw
	"then"		kw
	"to"		kw
	"type"		kw
	"use"		kw
	"where"		kw
	"while"		kw
	"write"		kw
done
	"("		idle	noeat istrings
# Keywords have to be duplicated here...
	"allocate"	kw
	"allocatable"	kw
	"assign"	kw
	"assignment"	kw
	"backspace"	kw
	"block"		kw
	"blockdata"	kw
	"call"		kw
	"case"		kw
	"character"	type
	"close"		kw
	"common"	kw
	"complex"	type
	"contains"	kw
	"continue"	kw
	"cycle"		kw
	"data"		kw
	"deallocate"	kw
	"default"	kw
	"dimension"	type
	"do"		kw
	"double"	type
	"doubleprecision"	type
	"elemental"	kw
	"else"		kw
	"elseif"	kw
	"elsewhere"	kw
	"end"		kw
	"endblock"	kw
	"endblockdata"	kw
	"enddo"		kw
	"endfile"	kw
	"endforall"	kw
	"endif"		kw
	"endinterface"	kw
	"endmodule"	kw
	"endselect"	kw
	"endtype"	kw
	"endwhere"	kw
	"entry"		kw
	"equivalence"	kw
	"exit"		kw
	"external"	kw
	"forall"	kw
	"format"	kw
	"function"	kw
	"go"		kw
	"goto"		kw
	"if"		kw
	"implicit"	kw
	"in"		kw
	"inout"		kw
	"inquire"	kw
	"integer"	kw
	"intent"	kw
	"interface"	kw
	"intrinsic"	kw
	"iolength"	kw
	"kind"		kw
	"logical"	type
	"module"	kw
	"namelist"	kw
	"none"		kw
	"nullify"	kw
	"only"		kw
	"open"		kw
	"optional"	kw
	"out"		kw
	"parameter"	kw
	"pause"		kw
	"pointer"	kw
	"precision"	type
	"print"		kw
	"private"	kw
	"procedure"	kw
	"program"	kw
	"publc"		kw
	"public"	kw
	"pure"		kw
	"read"		kw
	"real"		type
	"recursive"	kw
	"result"	kw
	"return"	kw
	"rewind"	kw
	"save"		kw
	"select"	kw
	"selectcase"	kw
	"sequence"	kw
	"stat"		kw
	"stop"		kw
	"subroutine"	kw
	"target"	kw
	"then"		kw
	"to"		kw
	"type"		kw
	"use"		kw
	"where"		kw
	"while"		kw
	"write"		kw
# Here are instrinsics
	"abs"		intrinsic
	"achar"		intrinsic
	"acos"		intrinsic
	"adjustl"		intrinsic
	"adjustr"		intrinsic
	"aimag"		intrinsic
	"aint"		intrinsic
	"all"		intrinsic
	"allocated"		intrinsic
	"alog"		intrinsic
	"alog10"	intrinsic
	"anint"		intrinsic
	"any"		intrinsic
	"asin"		intrinsic
	"associated"		intrinsic
	"atan"		intrinsic
	"atan2"		intrinsic
	"bit_size"		intrinsic
	"btest"		intrinsic
	"ceiling"		intrinsic
	"char"		intrinsic
	"cmplx"		intrinsic
	"conjg"		intrinsic
	"cos"		intrinsic
	"cosh"		intrinsic
	"count"		intrinsic
	"cpu_time"		intrinsic
	"cshift"		intrinsic
	"date_and_time"		intrinsic
	"dble"		intrinsic
	"digits"		intrinsic
	"dim"		intrinsic
	"dot_product"		intrinsic
	"dprod"		intrinsic
	"eoshift"		intrinsic
	"epsilon"		intrinsic
	"exp"		intrinsic
	"exponent"		intrinsic
	"false"		intrinsic
	"floor"		intrinsic
	"float"		intrinsic
	"fraction"		intrinsic
	"huge"		intrinsic
	"iachar"		intrinsic
	"iand"		intrinsic
	"ibclr"		intrinsic
	"ibits"		intrinsic
	"ibset"		intrinsic
	"ichar"		intrinsic
	"ieor"		intrinsic
	"index"		intrinsic
	"int"		intrinsic
	"int2"		intrinsic
	"ior"		intrinsic
	"ishft"		intrinsic
	"ishftc"		intrinsic
	"kind"		intrinsic
	"lbound"		intrinsic
	"len"		intrinsic
	"len_trim"		intrinsic
	"lge"		intrinsic
	"lgt"		intrinsic
	"lle"		intrinsic
	"llt"		intrinsic
	"log"		intrinsic
	"log10"		intrinsic
	"matmul"		intrinsic
	"max"		intrinsic
	"maxexponent"		intrinsic
	"maxloc"		intrinsic
	"maxval"		intrinsic
	"merge"		intrinsic
	"min"		intrinsic
	"minexponent"		intrinsic
	"minloc"		intrinsic
	"minval"		intrinsic
	"mod"		intrinsic
	"modulo"		intrinsic
	"mvbits"		intrinsic
	"nearest"		intrinsic
	"nint"		intrinsic
	"not"		intrinsic
	"null"		intrinsic
	"pack"		intrinsic
	"present"		intrinsic
	"product"		intrinsic
	"radix"		intrinsic
	"random_number"		intrinsic
	"random_seed"		intrinsic
	"range"		intrinsic
	"real"		intrinsic
	"repeat"		intrinsic
	"reshape"		intrinsic
	"rrspacing"		intrinsic
	"scale"		intrinsic
	"scan"		intrinsic
	"selected_int_kind"		intrinsic
	"selected_real_kind"		intrinsic
	"set_exponent"		intrinsic
	"shape"		intrinsic
	"sign"		intrinsic
	"sin"		intrinsic
	"sinh"		intrinsic
	"size"		intrinsic
	"spacing"		intrinsic
	"spread"		intrinsic
	"sqrt"		intrinsic
	"sum"		intrinsic
	"system_clock"		intrinsic
	"tan"		intrinsic
	"tanh"		intrinsic
	"tiny"		intrinsic
	"transfer"		intrinsic
	"transpose"		intrinsic
	"trim"		intrinsic
	"true"		intrinsic
	"ubound"		intrinsic
	"unpack"		intrinsic
	"verify"		intrinsic
done
	" \t"	ws_ident


:intrinsic Intrinsic
	*	idle	noeat

:kw Keyword
	*	idle	noeat

:type Type
	*	idle	noeat
joe-3.5/syntax/haskell.jsf.in0000666000100100010020000002076610430766712011701 # JOE syntax highlight file for Haskell

# Missing: nesting of nested comments. Needs joe support.
# fudged in one level of nesting

# Define colors
#
# bold inverse blink dim underline
# white cyan magenta blue yellow green red black
# bg_white bg_cyan bg_magenta bg_blue bg_yellow bg_green bg_red bg_black

# not too colorfull to not distract user
=Idle
=Special bold
=ConId bold yellow
=ModId
=VarId
=VarSym
=ReservedId bold
=Comment green
=Pragma bold green
=Error bg_red black
=FloatNumber bold cyan
=DecNumber bold cyan
=HexNumber cyan
=OctNumber cyan
=CharLit cyan
=StringLit cyan
=StringGap bg_cyan black
=EscapedChar bold cyan

:reset Idle
	*		reset		
	"a-z_"		varid		buffer recolor=-1
	"A-Z"		conormodid	mark recolor=-1
	":"		consym		buffer recolor=-1
	"!#$%&*+./<=>?@\\^|~" varsym	buffer recolor=-1
	"-"		dashorvarsym	mark buffer recolor=-1
	"(),;[]`}"	special		recolor=-1
	"{"		specialorncomment recolor=-1
	"0-9"		integerstart	mark noeat
	"\'"		charlit		recolor=-1
	"\""		strlit		recolor=-1
	
:special Special
	*		reset		noeat
	
:specialorncomment Special
	*		reset		noeat
	"-"		ncommentstart	recolor=-2
	
:ncommentstart Comment
	*		ncomment
	"#"		pragma		recolor=-3
	
:ncomment Comment
	*		ncomment
	"-"		ncommentmaybeend
	"{"		ncommentmaybenest
	
:ncommentmaybeend Comment
	*		ncomment	noeat
	"}"		reset

:ncommentmaybenest Comment
	*		ncomment
	"-"		ncommentnest

:ncommentnest Comment
	*		ncommentnest
	"-"		ncommentnestmaybeend
#	"{"		ncommentnestmaybenest

:ncommentnestmaybeend Comment
	*		ncommentnest	noeat
	"}"		ncomment

:pragma Pragma
	*		pragma
	"#"		pragmamaybeend1
	"-"		pragmamaybebadend

:pragmamaybeend1 Pragma
	*		pragma		noeat
	"-"		pragmamaybeend2
	
:pragmamaybeend2 Pragma
	*		pragma		noeat
	"}"		reset
	
:pragmamaybebadend Error
	*		pragma		noeat
	"}"		errorstate	recolor=-2
	
:errorstate Error
	*		reset

:conormodid ConId
	*		reset		noeat
	"."		probablymodid	recolor=-1
	"a-zA-Z0-9'_"	conormodid
	
# give it color varid to color the dot in case it is *not* a modid in the
# right color
:probablymodid VarSym
	*		ismodid		noeat recolormark recolor=-1
	" \t\r\n\v\f"	reset
	
:ismodid ModId
	*		reset		noeat

:varid VarId
	*		reset		noeat strings
	"case"		reservedid
	"class"		reservedid
	"data"		reservedid
	"default"	reservedid
	"deriving"	reservedid
	"do"		reservedid
	"else"		reservedid
	"if"		reservedid
	"import"	reservedid
	"infix"		reservedid
	"infixl"	reservedid
	"infixr"	reservedid
	"instance"	reservedid
	"let"		reservedid
	"module"	reservedid
	"newtype"	reservedid
	"of"		reservedid
	"then"		reservedid
	"type"		reservedid
	"where"		reservedid
	"_"		reservedid
done
	"a-zA-Z0-9_'"	varid

:reservedid ReservedId
	*		reset		noeat


:consym ConId
	*		reset		noeat strings
	":"		reservedid
	"::"		reservedid
done
	"-!#$%&*+./<=>?@\\^|~:" consym

:varsym VarSym
	*		reset		noeat strings
	".."		reservedid
	"="		reservedid
	"\\"		reservedid
	"|"		reservedid
	"<-"		reservedid
	"->"		reservedid
	"@"		reservedid
	"~"		reservedid
done
	"-!#$%&*+./<=>?@\\^|~:" varsym

:dashorvarsym VarSym
	*		varsym		noeat
	"-"		dashdash	hold
	
:dashdash VarSym
	*		linecomment	recolormark noeat
	"!#$%&*+./<=>?@\\^|~:" varsym
	"-" 		dashdash
	
:linecomment Comment
	*		linecomment
	"\n"		reset

:integerstart DecNumber
	*		decnum
	"0"		intdispatch

:decnum DecNumber
	*		reset		noeat
	"."		floatmaybemant
	"e"		floatexponentstart
	"0-9"		decnum
	
:intdispatch DecNumber
	*		decnum		noeat
	"oO"		octstart
	"xX"		hexstart

# Catch "0o " which is "integer 0" "symbol o" "whitespace"
# and "0oo" which is "integer 0" "symbol oo"
:octstart OctNumber
	*		varid		noeat recolor=-2
	"0-7"		octint		recolor=-3

# Catch "0o08" which is "(octal) integer 0" "integer 8"
:octint OctNumber
	*		reset		noeat
	"0-7"		octint

:hexstart HexNumber
	*		varid		noeat recolor=-2
	"0-9a-fA-F"	hexint		recolor=-3

:hexint HexNumber
	*		reset		noeat
	"0-9a-fA-F"	hexint

# default jumps to varsym because the dot that sent us here is the first
# char of a symbol.
:floatmaybemant FloatNumber
	*		varsym		noeat recolor=-2
	"0-9"		floatmantissa	recolormark

:floatmantissa FloatNumber
	*		reset		noeat
	"0-9"		floatmantissa
	"eE"		floa