* harbour/source/macro/macro.y
* harbour/source/macro/macro.yyc
* harbour/source/compiler/harbour.y
* harbour/source/compiler/harbour.yyc
% reduced INASSING definition - thanks to Xavi for information
* harbour/source/compiler/hbopt.c
! fixed stupid bug in logical expression optimization - thanks to Randy
for self contain example
* harbour/include/hbapi.h
* harbour/include/hbmacro.h
* harbour/include/hbexprb.c
* harbour/source/vm/macro.c
* harbour/source/vm/hvm.c
* harbour/source/macro/macro.y
* harbour/source/macro/macro.yyc
+ added direct support for pushing references to macro expressions.
It resolves the problem with Clipper compatibility (thanks to Alex
for information and example) in code like:
m->var := {0}
&("var[1]") += 10
and also many other things, f.e. now Harbour can cleanly compile
and execute this code:
proc main
local s
m->o := errorNew()
s:="o:tries"
? m->o:tries
? &s
? &(s+"+=2")
? m->o:tries
? &(s+":=3")
? m->o:tries
?
&s := 4
? m->o:tries
&s -= 2
? m->o:tries
&s++
? m->o:tries
?
s := "o"
m->o := 1
? &s
&s := &s + 4
? &s
? &s += 5
? --&s
?
s := "o[2]"
m->o := { 1, 2 }
? &s
&s := &s + 4
? &s
? &s += 5
? --&s
return
* harbour/utils/hbtest/Makefile
* force hbtest compilation with line numbers - information about line
numbers is important part of this test.
46 lines
501 B
Makefile
46 lines
501 B
Makefile
#
|
|
# $Id$
|
|
#
|
|
|
|
ifeq ($(HB_MAIN),)
|
|
HB_MAIN = std
|
|
endif
|
|
|
|
ROOT = ../../
|
|
|
|
PRG_SOURCES=\
|
|
hbtest.prg \
|
|
rt_array.prg \
|
|
rt_date.prg \
|
|
rt_file.prg \
|
|
rt_hvm.prg \
|
|
rt_hvma.prg \
|
|
rt_math.prg \
|
|
rt_misc.prg \
|
|
rt_mt.prg \
|
|
rt_str.prg \
|
|
rt_stra.prg \
|
|
rt_trans.prg \
|
|
rt_class.prg \
|
|
|
|
C_SOURCES=\
|
|
rt_miscc.c \
|
|
|
|
PRG_MAIN=hbtest.prg
|
|
|
|
LIBS=\
|
|
hbdebug \
|
|
hbvm \
|
|
hbrtl \
|
|
hblang \
|
|
hbrdd \
|
|
hbrtl \
|
|
hbvm \
|
|
hbmacro \
|
|
hbpp \
|
|
hbcommon \
|
|
|
|
include $(TOP)$(ROOT)config/bin.cf
|
|
|
|
HB_USER_PRGFLAGS += -l-
|