2000-07-30 14:32 UTC+0100 Victor Szakats <info@szelvesz.hu>

This commit is contained in:
Viktor Szakats
2000-07-30 12:44:49 +00:00
parent 1130a2760a
commit 2f43451c9d
6 changed files with 71 additions and 94 deletions

View File

@@ -1,3 +1,27 @@
2000-07-30 14:32 UTC+0100 Victor Szakats <info@szelvesz.hu>
* source/compiler/harbour.l
* tests/testdecl.prg
* tests/testwarn.prg
* contrib/hbclip/hbclip.ch
* Cleanup up the Strong Typing type keywords to more-or-less match
the VO syntax. Note that there's two TODOs according to this.
These are the valid keywords now:
AS ARRAY
AS CODEBLOCK
AS STRING
AS CLASS
AS DATE
AS LOGICAL
AS NUMERIC
AS OBJECT
AS USUAL
* source/rtl/scroll.c
+ Two comments added to make optimized code look more clear.
2000-07-29 08:50 UTC+0800 Ron Pinkas <ron@profit-master.com>
* hb_slex.bc
* Synchronized with makefile.bc

View File

@@ -69,30 +69,13 @@
/* Strong typing */
#translate AS ARRAY [OF <type>] =>
#translate AS CHAR =>
#translate AS CHARACTER =>
#translate AS STRING =>
#translate AS CLASS <ClassName> =>
#translate AS STRU <StruName> =>
#translate AS STRUCTURE <StruName> =>
#translate AS NUM =>
#translate AS NUMERIC =>
#translate AS DATE =>
#translate AS BLOCK =>
#translate AS OBJ =>
#translate AS CODEBLOCK =>
#translate AS OBJECT =>
#translate AS BOOL =>
#translate AS BOOLEAN =>
#translate AS LOG =>
#translate AS LOGICAL =>
#translate AS VAR =>
#translate AS VARIANT =>
#translate AS USUAL =>
#endif

View File

@@ -1378,42 +1378,29 @@ Separator {SpaceTab}
}
}
/* TODO: 4 character abbreviation should be added to be VO compatible
[vszakats] */
/* TODO: VOID should be added as a new type for NIL. [vszakats] */
"as array" { return AS_ARRAY; }
"as block" { return AS_BLOCK; }
"as char" { return AS_CHARACTER; }
"as character" { return AS_CHARACTER; }
"as codeblock" { return AS_BLOCK; }
"as string" { return AS_CHARACTER; }
"as class" { return AS_CLASS; }
"as stru" { return AS_CLASS; }
"as structure" { return AS_CLASS; }
"as date" { return AS_DATE; }
"as logical" { return AS_LOGICAL; }
"as bool" { return AS_LOGICAL; }
"as boolean" { return AS_LOGICAL; }
"as num" { return AS_NUMERIC; }
"as numeric" { return AS_NUMERIC; }
"as obj" { return AS_OBJECT; }
"as object" { return AS_OBJECT; }
"as var" { return AS_VARIANT; }
"as variant" { return AS_VARIANT; }
"as usual" { return AS_VARIANT; }
"as array of var" { return AS_ARRAY; }
"as array of variant" { return AS_ARRAY; }
"as array of usual" { return AS_ARRAY; }
"as array of array" { return AS_ARRAY_ARRAY; }
"as array of block" { return AS_BLOCK_ARRAY; }
"as array of char" { return AS_CHARACTER_ARRAY; }
"as array of character" { return AS_CHARACTER_ARRAY; }
"as array of codeblock" { return AS_BLOCK_ARRAY; }
"as array of string" { return AS_CHARACTER_ARRAY; }
"as array of class" { return AS_CLASS_ARRAY; }
"as array of stru" { return AS_CLASS_ARRAY; }
"as array of structure" { return AS_CLASS_ARRAY; }
"as array of date" { return AS_DATE_ARRAY; }
"as array of logical" { return AS_LOGICAL_ARRAY; }
"as array of bool" { return AS_LOGICAL_ARRAY; }
"as array of boolean" { return AS_LOGICAL_ARRAY; }
"as array of num" { return AS_NUMERIC_ARRAY; }
"as array of numeric" { return AS_NUMERIC_ARRAY; }
"as array of obj" { return AS_OBJECT_ARRAY; }
"as array of object" { return AS_OBJECT_ARRAY; }
%{

View File

@@ -50,11 +50,11 @@ HB_FUNC( SCROLL )
/* Enforce limits of (0,0) to (MAXROW(),MAXCOL()) */
iTop = hb_parni( 1 );
iTop = hb_parni( 1 ); /* Defaults to zero on bad type */
if( iTop < 0 ) iTop = 0;
else if( iTop > iMaxRow ) iTop = iMaxRow;
iLeft = hb_parni( 2 );
iLeft = hb_parni( 2 ); /* Defaults to zero on bad type */
if( iLeft < 0 ) iLeft = 0;
else if( iLeft > iMaxCol ) iLeft = iMaxCol;

View File

@@ -5,8 +5,8 @@
#TRANSLATE AS NEW <ClassName> => AS CLASS <ClassName> := <ClassName>():New()
DECLARE nMyFun() AS NUM
DECLARE MyClass cVar AS CHAR
DECLARE nMyFun() AS NUMERIC
DECLARE MyClass cVar AS STRING
Function Main()

View File

@@ -6,69 +6,52 @@
#ifdef __HARBOUR__
#pragma -es0
#else
#TRANSLATE AS ARRAY [OF <type>] =>
#translate AS ARRAY [OF <type>] =>
#translate AS STRING =>
#translate AS CLASS <ClassName> =>
#translate AS NUMERIC =>
#translate AS DATE =>
#translate AS CODEBLOCK =>
#translate AS OBJECT =>
#translate AS LOGICAL =>
#translate AS USUAL =>
#TRANSLATE AS CHAR =>
#TRANSLATE AS CHARACTER =>
#TRANSLATE AS STRING =>
#TRANSLATE AS CLASS <ClassName> =>
#TRANSLATE AS STRU <StruName> =>
#TRANSLATE AS STRUCTURE <StruName> =>
#TRANSLATE AS NUM =>
#TRANSLATE AS NUMERIC =>
#TRANSLATE AS DATE =>
#TRANSLATE AS BLOCK =>
#TRANSLATE AS OBJ =>
#TRANSLATE AS OBJECT =>
#TRANSLATE AS BOOL =>
#TRANSLATE AS BOOLEAN =>
#TRANSLATE AS LOG =>
#TRANSLATE AS LOGICAL =>
#TRANSLATE AS VAR =>
#TRANSLATE AS VARIANT =>
#COMMAND DECLARE <*x*> =>
#command DECLARE <*x*> =>
#endif
DECLARE nMyFunc( cVar AS STRING, @nVar AS NUMERIC ) AS NUMERIC
DECLARE cOtherFunc( ) AS CHAR
DECLARE cOtherFunc( ) AS STRING
DECLARE cOtherFunc( @cVar as char, optional nVar as num, optional other as variant ) AS CHAR
DECLARE cOtherFunc( @cVar as string, optional nVar as numeric, optional other as usual ) AS STRING
DECLARE Seconds() AS NUM
DECLARE Seconds() AS NUMERIC
DECLARE Int( n AS NUMERIC ) AS NUMERIC
DECLARE TEST() AS NUMERIC
DECLARE MyClass ;
nMyFunc( nVal As Num ) As Num
nMyFunc( nVal AS NUMERIC) As Num
DECLARE MyClass ;
nMyFunc( nVal As Num ) As Num ;
nMyFunc( nVal As Num ) As Num ;
nMyFunc( nVal AS NUMERIC ) AS NUMERIC ;
nMyFunc( nVal AS NUMERIC ) AS NUMERIC ;
cMyData ;
aInstances AS Array Of Object MyClass ;
oNext( oInstance AS Class MyClass ) As Class MyClass
DECLARE OtherClass ;
nMyFunc( nVal As Num ) As Num ;
nMyFunc( nVal As Num ) As Num ;
nMyFunc( nVal AS NUMERIC ) AS NUMERIC ;
nMyFunc( nVal AS NUMERIC ) AS NUMERIC ;
cMyData ;
aInstances AS Array Of Object MyClass ;
oNext( oInstance AS Class OtherClass ) As Class MyClass
FIELD a AS CHAR
FIELD b AS CHAR
FIELD a AS STRING
FIELD b AS STRING
MEMVAR Var1 AS CHAR
MEMVAR Var1 AS STRING
STATIC lGlobal AS LOGICAL
@@ -76,15 +59,15 @@ PROCEDURE THEMAIN( optional )
STATIC lStatic := 0, oMyObj As Class WrongClass
LOCAL cVar AS CHAR := [declare function]
LOCAL cVar AS STRING := [declare function]
LOCAL a As Char, oB AS Class MyClass, c AS Char, oD AS Class OtherClass
LOCAL a As STRING, oB AS Class MyClass, c AS STRING, oD AS Class OtherClass
FIELD b AS NUM
FIELD b AS NUMERIC
MEMVAR Var1 AS NUM
MEMVAR Var1 AS NUMERIC
PRIVATE TEST AS CHAR
PRIVATE TEST AS STRING
USE TEMP
@@ -147,7 +130,7 @@ RETURN
PROC MAIN1()
PRIVATE OTHER, TEST AS CHAR
PRIVATE OTHER, TEST AS STRING
Var1 := M->TEST
@@ -178,7 +161,7 @@ Return( NIL )
FUNCTION Main3()
LOCAL n AS NUMERIC, cVar AS CHARACTER, a[5,5,5] AS ARRAY OF Char
LOCAL n AS NUMERIC, cVar AS STRING, a[5,5,5] AS ARRAY OF STRING
cVar := a[1]
@@ -200,7 +183,7 @@ FUNCTION Main3()
n[2] := 4
cVar := {|nb AS NUMERIC , cb AS CHARACTER, db AS DATE| n := .F., nb := 'A', cb := 1, db := 0, n := 'wrong type', 0 }
cVar := {|nb AS NUMERIC , cb AS STRING, db AS DATE| n := .F., nb := 'A', cb := 1, db := 0, n := 'wrong type', 0 }
? "This is a compiler test."
@@ -216,8 +199,8 @@ FUNCTION Main3()
FUNCTION SomeTest( lVar AS LOGICAL )
LOCAL nVar AS NUMERIC, cVar AS CHARACTER, lVar2 AS LOGICAL, nNoType := 3
PRIVATE cMemVar1 AS CHARACTER
LOCAL nVar AS NUMERIC, cVar AS STRING, lVar2 AS LOGICAL, nNoType := 3
PRIVATE cMemVar1 AS STRING
nVar := .T.
@@ -241,7 +224,7 @@ FUNCTION SomeTest( lVar AS LOGICAL )
NondDeclared := 2
cVar := {|n AS NUMERIC , c AS CHARACTER, d AS DATE| n := nMyFunc( n,c,d ), c := 2 }
cVar := {|n AS NUMERIC , c AS STRING, d AS DATE| n := nMyFunc( n,c,d ), c := 2 }
nVar := 8 + cVar