home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
POINT Software Programming
/
PPROG1.ISO
/
misc
/
source14
/
source.lng
< prev
next >
Wrap
C/C++ Source or Header
|
1993-04-21
|
22KB
|
1,845 lines
; SOURCE.LNG
; Copyright Rick Maddy 1992, 1993
; Changes:
; Version 1.01 to 1.1
; - Under both dBASE and Clipper, changed the comment position value
; from '0' to 'B' for the '*' and 'note' comment markers.
; Version 1.1 to 1.2
; - None
; Version 1.2 to 1.3
; - Changed keywords and blocks in dBASE and Clipper to be full words.
; - Added '#' in column one to C comments so defines and includes are
; highlighted.
; - Removed Text - End Text block from Clipper.
; Version 1.3 to 1.4
; - Removed '#' comment from C. Did not work well if also had /* */
; multiline comment starting on same line.
; - Added #define and #include keywords to C.
; - Added #if, #endif, #else, #elif, #ifdef, defined keywords to C.
; - Added while - enddo block to Clipper.
; - Added the RPG/Free language.
; - Added the MAKEFILE language.
; - Changed all the file extensions to filename patterns.
; - Added the ":include:" entries for each language.
; - Added the ":pagefeed:" entries for each language.
; - Added the ICON language.
; This is the default language definition file. This file should reside in
; the same directory as SOURCE.EXE. Feel free to add any additional languages
; or take ones out you do not use. You may also change an existing language.
; Please follow the guidelines outlined in SOURCE.DOC.
;===========================================================================
; Definition for the C and C++ languages - based on ANSI C and AT&T C++.
; Identifiers are made up of letters, numbers, and underscore.
; Comments are surrounded by /* */ or begin with // and end at end-of-line.
; Comments may occur anywhere on a line.
; Strings are placed in double quotes and characters are placed in single
; quotes. Both " and ' are escaped by preceding it by a backslash.
; The only block is the { } pair.
; C is case specific.
beginlang C *.c *.h *.cpp *.hpp
abcdefghijklmnopqrstuvwxyz0123456789_#
:comment:
//
0
/*
*/
0
:string:
"
\
'
\
:block:
{
}
:keyword:
auto
break
case
char
catch
class
const
continue
default
#define
defined
delete
do
double
#elif
#else
else
#endif
enum
extern
float
for
friend
goto
#if
#ifdef
if
#include
inline
int
long
new
operator
#pragma
private
protected
public
register
return
short
signed
sizeof
static
struct
switch
template
this
typedef
union
unsigned
virtual
void
volatile
while
:include:
#include <
>
.
#include "
"
.
:pagefeed:
endlang case full
;===========================================================================
; Definition for the Pascal language - based on Turbo Pascal 6.0.
; Identifiers are made up of letters, numbers, and underscore.
; Comments are surrounded by the { } or the (* *) pairs. Comments may
; occur anywhere on a line.
; Strings and characters are placed within single quotes. A literal single
; quote is escaped by another single quote.
; Numerous blocks exists: begin end, record end, case end, repeat until
; Pascal is not case specfic and all keywords must be found in full.
; Note - There is a conflict with variant record types. The syntax of this
; record has the keyword 'case' in it. This conflicts if the 'case' - 'end'
; block is defined. When SOURCE comes across the variant record 'case', it
; begins a block until an 'end' is found. The 'end' usually found is the
; 'end' for the 'record' block. Now no 'end' is found for the 'record'.
; If you have variant record declarations, remove the 'case' - 'end' block
; defined below. If you do not have variant records, then leave as is.
beginlang Pascal *.pas *.inc
abcdefghijklmnopqrstuvwxyz0123456789_
:comment:
{
}
0
(*
*)
0
:string:
'
'
:block:
begin
end
record
end
case
end
repeat
until
:keyword:
and
asm
array
begin
case
const
constructor
destructor
div
do
downto
else
end
file
for
function
goto
if
implementation
in
inline
interface
label
mod
nil
not
object
of
or
packed
procedure
program
record
repeat
set
shl
shr
string
then
to
type
unit
until
uses
var
while
with
xor
:include:
{$I
}
.
.pas
:pagefeed:
endlang nocase full
;===========================================================================
; Language definition for GW-BASIC.
; The 'if ... end if' block was not added because the 'if' statement has two
; syntaxes. The first is 'if ... then ... [else ...]'. This has no 'end if'.
; SOURCE would see the 'if' and begin the block. Since no 'end if' is present,
; the block line would never be terminated.
; Identifiers are madeup of letters, numbers, period, pound, and dollar.
; Comments begin with a single quote or the word rem and both are
; terminated by end-of-line.
; Strings are enclosed in double quotes.
; Two blocks exist: for next, while wend
; BASIC is not case sensitive and keywords must match in full.
; Only statements and commands are listed under keywords, no functions or
; variables. They may be added if desired.
beginlang GW-BASIC *.bas
abcdefghijklmnopqrstuvwxyz0123456789.#$
:comment:
'
0
rem
0
:string:
"
:block:
for
next
while
wend
:keyword:
auto
beep
bload
bsave
call
chain
chdir
circle
clear
close
cls
color
com
common
cont
data
def fn
defint
defsng
defdbl
defstr
def seg
def usr
delete
dim
draw
edit
else
end
environ
erase
error
field
files
for
get
gosub
return
goto
if
input
input#
ioclt
key
kill
let
line
list
llist
load
locate
lock
lprint
lprint using
lset
rset
merge
mid$
mkdir
name
next
new
on
open
option base
out
paint
palette
palette using
pcopy
pen
play
poke
preset
pset
print
print using
print#
print# using
put
randomize
read
rem
renum
reset
restore
resume
return
rmdir
run
save
screen
shell
sound
stop
strig
swap
system
then
timer
tron
troff
unlock
view
view print
wait
wend
while
width
window
write
write#
:include:
chain "
"
.
:pagefeed:
endlang nocase full
;===========================================================================
; Language definition for Ada based on ANSI/MIL-STD-1815A-1983
; Identifiers are made up of letters, numbers, and underscore.
; Comments begin with the double hyphen and end at end-of-line. Comments
; may appear anywhere on a line.
; Strings are enclosed in double qoutes. Literal double qoutes are preceded
; by another double quote. Characters are enclosed in single quotes.
; Numerous blocks exist: begin end, if end if, case end case, loop end loop,
; record end record, package end, task end,
; select end select, while end loop, accept end
; Ada is case insensitive and keywords must match in full.
beginlang Ada *.ada
abcdefghijklmnopqrstuvwxyz0123456789_
:comment:
--
0
:string:
"
"
'
:block:
begin
end
if
end if
case
end case
loop
end loop
record
end record
package
end
task
end
select
end select
accept
end
:keyword:
abort
abs
accept
access
all
and
array
at
begin
body
case
constant
declare
delay
delta
digits
do
else
elsif
end
entry
exception
exit
for
function
generic
goto
if
in
is
limited
loop
mod
new
not
null
of
or
others
out
package
pragma
private
procedure
raise
range
record
rem
renames
return
reverse
select
separate
subtype
task
terminate
then
type
use
when
while
with
xor
:include:
:pagefeed:
pragma page
endlang nocase full
;===========================================================================
; Language definition for FORTRAN 77 - based on Microsoft FORTRAN.
; Identifiers are made up of letters and numbers.
; Comments are started by having a C or an asterik in column 1 and end with
; end-of-line.
; Strings are enclosed in single quotes. Literal single qoutes are preceded
; by another single quote.
; Three blocks: program end, funtion end, subroutine end
; FORTRAN is not case sensitive and keywords must match in full.
beginlang FORTRAN *.for
abcdefghijklmnopqrstuvwxyz0123456789
:comment:
c
1
*
1
:string:
'
'
:block:
program
end
function
end
subroutine
end
:keyword:
assign
backspace
block data
call
character
close
common
complex
continue
data
dimension
do
double precision
else
elseif
end
endfile
endif
equivalence
external
format
function
goto
go to
if
then
implicit
integer
inquire
intrinsic
logical
open
parameter
pause
program
read
real
return
rewind
save
step
subroutine
write
:include:
:pagefeed:
endlang nocase full
;===========================================================================
; Language definition for assembly language programs
; Identifiers are made up of letters, numbers, underscor, at, dollar, and
; question mark.
; Comments start with a semicolon and end at end-of-line. Comments may
; begin any where on the line.
; Strings are enclosed in single quotes.
; There are no blocks.
; Keywords not entered since they are processor specific, add yours as
; desired.
beginlang Assembly *.asm
abcdefghijklmnopqrstuvwxyz0123456789_@$?
:comment:
;
0
:string:
'
'
:block:
:keyword:
:include:
:pagefeed:
endlang nocase full
;===========================================================================
; Language definition for dBASE III programs
; Identifiers are made up of letters, numbers, and underscore.
; Comments begin with and asterik, double ampersand, or the word note.
; All end with end-of-line and may begin anywhere on a line.
; Strings are enclosed within double qoutes.
; Blocks are: do case endcase, do while enddo, if endif, text endtext
; For Next is not listed because contructs like 'locate for ...' cause
; problems.
; dBASE is case insensitive and only the first four letters of keywords need
; to be found.
beginlang dBASE *.prg
abcdefghijklmnopqrstuvwxyz0123456789_
:comment:
*
B
&&
0
note
B
:string:
"
'
:block:
do case
endcase
do while
enddo
if
endif
text
endtext
:keyword:
accept
additive
alias
all
all like
alternate
append
append from
assist
average
before
blank
bottom
browse
call
cancel
case
change
clear
clear all
clear fields
clear gets
clear memory
clear typeahead
close
continue
copy
copy file
copy structure
count
create
create label
create query
create report
create screen
create view
databases
delete
delete file
delimited
dif
dir
display
display history
display memory
display status
display struture
do
do case
do while
double
edit
eject
else
endcase
enddo
endif
endtext
environment
erase
except
exit
export
fields
find
for
format
freeze
from
from environment
get
go
goto
heading
help
if
import
index
input
insert
join
label form
last
like
list
list history
list memory
list status
list structure
load
locate
lock
loop
modify command
modify file
modify label
modify query
modify report
modify screen
modify structure
modify view
module
noappend
noeject
nofollow
nomenu
note
off
on
on error
on escape
on key
otherwise
pack
parameters
pfs
picture
plain
private
procedure
public
quit
random
range
read
recall
reindex
release
rename
replace
report form
restore from
resume
retry
return
return to master
run
sample
save
save to
say
sdf
seek
select
set
set alternate
set bell
set carry
set catalog
set century
set color
set confirm
set console
set date
set debug
set decimals
set default to
set deleted
set delimiters
set device to print
set device to screen
set dohistory
set echo
set escape
set exact
set fields
set filter
set fixed
set format
set function
set heading
set help
set history
set index
set intensity
set margin
set memowidth
set menu
set message
set odometer
set order
set path
set print
set procedure
set relation
set safety
set scoreboard
set status
set step
set talk
set title
set typeahead
set unique
set view
skip
sort
store
structure extended
sum
summary
suspend
sylk
text
to
to file
to print
top
total
type
unique
update on
use
wait
while
width
with
wks
zap
:include:
:pagefeed:
endlang nocase part 4
;===========================================================================
; Language definition for MS-DOS Batch files
; Identifiers are made up of letters, numbers, and underscore.
; Comments begin with the word rem and end at end-of-line. Comments may
; appear anywhere on a line.
; Strings are enclosed in double quotes.
; There are no blocks.
; Only batch file specific keywords are listed. Feel free to add all DOS
; commands if desired.
; Batch files are case insensitive and keywords must match in full.
beginlang Batch *.bat
abcdefghijklmnopqrstuvwxyz0123456789_
:comment:
rem
0
:string:
"
:block:
:keyword:
call
echo
for
goto
if
pause
rem
shift
:include:
:pagefeed:
endlang nocase full
;===========================================================================
; Language definition for COBOL based on Microsoft COBOL
; Identifiers are made up of letters, numbers, and hyphen.
; Comments begin with an asterik, slash or D in column 7 and end with
; end-of-line.
; Strings are enclosed in single or double quotes. A literal quote is
; preceded by itself.
; Cobol has no blocks
beginlang COBOL *.cob *.cbl
abcdefghijklmnopqrstuvwxyz0123456789-
:comment:
*
7
/
7
D
7
:string:
"
"
'
'
:block:
:keyword:
accept
access
add
advancing
after
all
alphabetic
also
alter
alternate
and
are
area
areas
ascending
ascii
assign
at
author
auto-skip
automatic
background-color
beep
before
bell
blank
blink
block
bottom
by
call
cancel
cd
cf
ch
chain
chaining
character
characters
clock-units
close
cobol
code
code-set
col
collating
column
comma
communication
comp
communication-0
comp-0
communication-3
comp-3
communication-4
comp-4
computational
compute
configuration
contains
control
controls
copy
corr
corresponding
count
currency
data
date
date-compiled
date-written
day
debug-contents
debug-item
debug-line
debug-name
debug-sub-1
debug-sub-2
debug-sub-3
debugging
decimal-point
declaratives
delete
delimited
delimiter
depending
descending
destination
de
detail
disable
disk
display
division
down
duplicates
dynamic
egi
eject
else
emi
empty-check
enable
end
end-of-page
enter
environment
eop
equal
erase
error
escape
esi
every
exception
exclusive
exhibit
exit
extend
fd
file
file-control
file-id
filler
final
first
footing
for
foreground-color
from
generate
giving
go
greater
group
heading
high-value
high-values
highlight
i-o
i-o-control
identification
if
in
index
indexed
initial
initiate
input
input-output
inspect
installation
into
invalid
is
just
justified
key
label
last
leading
left
left-justify
length
length-check
less
limit
limits
lin
linage
linage-counter
line
lines
line-counter
linkage
lock
locking
low-value
low-values
manual
memory
merge
message
mode
modules
move
multiple
multiply
native
negative
next
no
no-echo
not
number
numeric
object-computer
occurs
of
off
omitted
on
open
optional
or
organization
output
overflow
page
page-counter
perform
pf
ph
pic
picture
plus
pointer
position
positive
printer
printing
procedure
procedures
proceed
program
program-id
prompt
queue
quote
quotes
random
rd
read
ready
receive
record
records
redefines
reel
references
relative
release
remainder
removal
renames
replacing
report
reports
reporting
rerun
reserve
reset
return
reverse-video
reversed
rewind
rewrite
rf
rh
right
right-justify
round
run
same
sd
search
section
security
segment
segment-limit
select
send
sentence
separate
sequence
sequential
set
sign
size
sort
sort-merge
source
source-computer
space
spaces
space-fill
special-names
standard
standard-1
start
status
stop
string
sub-queue-1
sub-queue-2
sub-queue-3
subtract
sum
suppress
symbolic
sync
synchronized
table
tallying
tape
terminal
terminate
text
than
through
thru
time
times
to
top
trace
trailing
trailing-sign
type
underline
unit
unlock
unstring
until
up
update
upon
usage
use
using
value
values
varying
wait
when
with
words
working-storage
write
zeros
zeroes
zero-fill
:include:
copy
.
.
:pagefeed:
endlang nocase full
;===========================================================================
; Language definition for Clipper 5.0 programs
; Identifiers are made up of letters, numbers, and underscore.
; Comments are enclosed in /* */ or begin with //, *, &&, or note and end
; with end-of-line.
; Strings are enclosed withing double qoutes or single quotes.
; Clipper is case insensitive and only the first four letters of keywords
; need to be found.
; Note - The 'for' - 'next' block is not listed because contructs like
; 'locate for' cause problems.
beginlang Clipper *.prg
abcdefghijklmnopqrstuvwxyz0123456789_
:comment:
*
B
//
0
/*
*/
0
&&
0
note
B
:string:
"
'
:block:
begin sequence
end
do case
endcase
do while
enddo
while
end
while
enddo
if
endif
:keyword:
abs
asc
at
begin sequence
bof
break
case
cdow
chr
cmonth
col
ctod
date
day
declare
deleted
devpos
do
do case
do while
dow
dtoc
dtos
else
elseif
empty
end
endcase
enddo
endif
endtext
eof
exit
exp
external
fcount
field
fieldname
file
flock
for
found
function
if
iif
inkey
int
lastrec
len
local
lock
log
loop
lower
ltrim
max
memvar
min
month
next
otherwise
parameters
pcol
pcount
private
procedure
prow
public
reccount
recover
recno
replicate
return
rlock
round
row
rtrim
seconds
select
setpos
space
sqrt
static
step
str
substr
time
to
transform
trim
type
upper
using
val
valtype
with
while
word
year
:include:
#include "
"
.
.ch
:pagefeed:
endlang nocase part 4
;===========================================================================
; Definition of the RPG/Free Language
;
; From Paul Conte, Eugene Oregon
;
beginlang rpg/free *.rpf *.rpi
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_/-
:comment:
--
0
H*
0
F*
0
E*
0
I*
0
C*
0
O*
0
T*
0
L*
0
:string:
'
'
:block:
BEGSR
ENDSR
BEGSR
END
CASE
ENDCS
CASE
END
DO
ENDDO
DO
END
FOR
ENDFOR
FOR
END
IF
ENDIF
IF
END
LOOP
ENDLOOP
LOOP
END
SELECT
ENDSELECT
SELECT
ENDSL
SELECT
END
UNTIL
ENDUNTIL
UNTIL
END
WHILE
ENDWHILE
WHILE
END
:keyword:
/AUTORPT
/CALC
/CONTROL
/COPY
/DATA
/DEFINE
/DUMPMAC
/EJECT
/ELSE
/ELSEIF
/END-EXEC
/ENDIF
/ERROR
/EXEC
/EXT
/EXTENSION
/FILE
/FIRSTCOL
/FIX
/FREE
/HEADER
/IF DEFINED
/IF NOT DEFINED
/INCLUDE
/INCLUDEF
/INPUT
/LINE
/MESSAGE
/OUTPUT
/PRINT
/SKIP
/SPACE
/TELCOM
/TITLE
/UNDEFINE
ACQ
ACQUIRE
ADD
BEGSR
BITOF
BITOFF
BITON
BREAK
CAB
CALL
CAS
CASE
CAT
CATST
CATSTR
CHAIN
CHECK
CKDT
CLEAR
CLOSE
COMIT
COMMIT
COMP
COMPARE
CONTINUE
CVDT
DCL
DEBUG
DEFINE
DEFINED
DEFN
DELET
DELETE
DISPLAY
DIV
DIVIDE
DO
DOUEQ
DOUGT
DOULT
DOUGE
DOULE
DOUNE
DOWEQ
DOWGT
DOWLT
DOWGE
DOWLE
DSPLY
DUMP
EDIT
ELSE
END
ENDCS
ENDDO
ENDFOR
ENDIF
ENDLOOP
ENDSELECT
ENDSL
ENDSR
ENDSS
ENDSUBSTR
ENDUNTIL
ENDWHILE
EXCPT
EXFMT
EXIT
EXITBLOCK
EXITSR
EXSR
FEOD
FOR
FORCE
FREE
GOTO
IF
IN
ITER
ITERATE
KEY
KFLD
KLIST
LEAVE
LOKUP
LOOKUP
LOOP
MHHZO
MHLZO
MLHZO
MLLZO
MODE
MOVEx
MULT
MULTIPLY
MVR
NEXT
NOT
OCCUR
OCUR
OPEN
OR
OTHER
OUT
PARM
PLIST
POST
RDCOM
READ
READC
READE
READP
READPE
REDPE
REL
RELEASE
RESET
RETRN
RETURN
RLABL
ROLBK
ROLLBACK
SCAN
SELEC
SELECT
SETGT
SETLL
SETOF
SETOFF
SETON
SHTDN
SQRT
SUB
SUBST
SUBSTR
SUBTRACT
TAG
TESTB
TESTN
TESTZ
TIME
TRANSLATE
UNLCK
UNLOCK
UNTIL
UPDAT
UPDATE
USE
WAIT
WHEN
WHILE
WRCOM
WRITE
XCAT
XCATST
XCATSTR
XFOOT
XLATE
XMOVE
XSUBST
XSUBSTR
XTRANSLATE
XXLATE
Z-ADD
Z-SUB
:include:
/INCLUDE
:pagefeed:
/EJECT
endlang nocase full
;===========================================================================
;
; Makefiles
;
; As defined, this will only highlight comments
;
beginlang Makefile makefile
abcdefghijklmnopqrstuvwxyz0123456789_
:comment:
#
0
:string:
:block:
:keyword:
:include:
:pagefeed:
endlang nocase full
;===========================================================================
; Definition for the ICON language - based on Version 5.
; Identifiers are made up of letters, numbers, and underscore.
; Comments begin with # and end at end-of-line.
; Comments may occur anywhere on a line.
; Strings are placed in double quotes and characters are placed in single
; quotes. Both " and ' are escaped by preceding it by a backslash.
; The only blocks are the { } pair and procedure - end pair.
; ICON is case specific.
beginlang ICON *.icn
abcdefghijklmnopqrstuvwxyz0123456789_&
:comment:
#
0
:string:
"
\
'
\
:block:
{
}
procedure
end
:keyword:
&ascii
&clock
&cset
&date
&dateline
&errout
&fail
&host
&input
&lcase
&level
&main
&null
&output
&pos
&random
&source
&subject
&time
&trace
&ucase
&version
break
by
case
create
default
do
dynamic
else
end
every
external
fail
global
if
initial
local
next
not
of
procedure
record
repeat
return
static
suspend
then
to
until
while
:include:
:pagefeed:
endlang case full