From 2f43451c9d2aefb8941ad8e6273619299dfd085e Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Sun, 30 Jul 2000 12:44:49 +0000 Subject: [PATCH] 2000-07-30 14:32 UTC+0100 Victor Szakats --- harbour/ChangeLog | 24 +++++++++ harbour/contrib/hbclip/hbclip.ch | 21 +------- harbour/source/compiler/harbour.l | 31 ++++-------- harbour/source/rtl/scroll.c | 4 +- harbour/tests/testdecl.prg | 4 +- harbour/tests/testwarn.prg | 81 ++++++++++++------------------- 6 files changed, 71 insertions(+), 94 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index d2e7313bfb..78a571a318 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -1,3 +1,27 @@ +2000-07-30 14:32 UTC+0100 Victor Szakats + + * 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 * hb_slex.bc * Synchronized with makefile.bc diff --git a/harbour/contrib/hbclip/hbclip.ch b/harbour/contrib/hbclip/hbclip.ch index 3481de81dd..27f2bcfd06 100644 --- a/harbour/contrib/hbclip/hbclip.ch +++ b/harbour/contrib/hbclip/hbclip.ch @@ -69,30 +69,13 @@ /* Strong typing */ #translate AS ARRAY [OF ] => - -#translate AS CHAR => -#translate AS CHARACTER => #translate AS STRING => - #translate AS CLASS => -#translate AS STRU => -#translate AS STRUCTURE => - -#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 diff --git a/harbour/source/compiler/harbour.l b/harbour/source/compiler/harbour.l index 4fe6fe14bd..cc08c90222 100644 --- a/harbour/source/compiler/harbour.l +++ b/harbour/source/compiler/harbour.l @@ -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; } %{ diff --git a/harbour/source/rtl/scroll.c b/harbour/source/rtl/scroll.c index 2867f45ce1..13cc1d0efd 100644 --- a/harbour/source/rtl/scroll.c +++ b/harbour/source/rtl/scroll.c @@ -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; diff --git a/harbour/tests/testdecl.prg b/harbour/tests/testdecl.prg index 722d019992..aad038d5ed 100644 --- a/harbour/tests/testdecl.prg +++ b/harbour/tests/testdecl.prg @@ -5,8 +5,8 @@ #TRANSLATE AS NEW => AS CLASS := ():New() -DECLARE nMyFun() AS NUM -DECLARE MyClass cVar AS CHAR +DECLARE nMyFun() AS NUMERIC +DECLARE MyClass cVar AS STRING Function Main() diff --git a/harbour/tests/testwarn.prg b/harbour/tests/testwarn.prg index 136d97e5d9..4feaf286b6 100644 --- a/harbour/tests/testwarn.prg +++ b/harbour/tests/testwarn.prg @@ -6,69 +6,52 @@ #ifdef __HARBOUR__ #pragma -es0 #else - #TRANSLATE AS ARRAY [OF ] => + #translate AS ARRAY [OF ] => + #translate AS STRING => + #translate AS CLASS => + #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 => - #TRANSLATE AS STRU => - #TRANSLATE AS STRUCTURE => - - #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