1st version of a self contained Clipper/Harbour Pre-Processor and a "DOT" prompt
environment, written in the Clipper language.
The pre-processor is speced to be 100% Clipper/Harbour compatible, though
further testing is needed. It supports all of the Clipper PP Directives, Match
Markers, and Result Markers. It utilizes a much more aggresive compilation of the
PP rules, and thus uses a much simpler "interpreter" and output algoritems.
This file also offers a "DOT" prompt environment which can execute most of
the Clipper/Harbour syntax and supports all of the pre-processor directives
thus supporting any user defined commands.
Current exceptions are statements like:
LOCAL, STATIC, PRIVATE PUBLIC, FUNCTION PROCEDURE etc.
as well as flow control constructs like IF,ELSE,END,WHILE,CASE,FOR,NEXT etc.
This is a very early stage of the "DOT" environment, but it does demonstrate
the architecture, and already provides the core functionality.
The "DOT" mode, automatically loades rp_dot.ch to implement additional commands
on top of the built in rules (burned-in Clipper std.ch compatible).
Usage:
PP [PrgName] [-P][-U][-CCH][-DE|M|P]
PrgName - Source file (PRG) to compile
-P - Will produce a PP$ file, which is the exact equivalent of the PPO file.
-U - Will excluse the burned-in standard rules
-D - Will produe debug trace information when folowed by E, M, or P
E - Will trace the Expression parser
M - Will trace the rule Matching system.
P - Will trace the outPut system.
-CCH - Will produce a .CCH file which is a compiled version of any rules
compiled. This flag *should* be used with the -U flag.
If no parameters are provided, the program will enter the "DOT" mode.
I hope this file can provide thise intersted with a better understanding of the
Clipper Pre-Processor structure and logic.
This commit is contained in:
4077
harbour/contrib/dot/pp.prg
Normal file
4077
harbour/contrib/dot/pp.prg
Normal file
File diff suppressed because it is too large
Load Diff
1
harbour/contrib/dot/rp_dot.ch
Normal file
1
harbour/contrib/dot/rp_dot.ch
Normal file
@@ -0,0 +1 @@
|
||||
#COMMAND BROWSE => Browse( 1, 0, 23, 79 )
|
||||
Reference in New Issue
Block a user