home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / p2demo21.exe / PEL / DBASE.PEL < prev    next >
Text File  |  1995-03-22  |  16KB  |  344 lines

  1. # $Header:   P:\source\wmacros\dbase.pev   1.2   22 Mar 1995 10:54:40   PFHJXM0  $
  2. ## $Tabs:4 7$
  3.  
  4. ##############################################################################
  5. #
  6. #       Compuware Corporation
  7. #         31440 Northwestern Highway
  8. #           Farmington Hills, Michigan 48334-2564
  9. #
  10. #   This source code listing contains information that is
  11. #   proprietary to Compuware Corporation and may not be copied
  12. #   duplicated, translated, transmitted, stored, retrieved
  13. #   or in any manner or by any method conveyed or disclosed
  14. #   to a third party or parties without express written
  15. #   permission from Compuware Corporation.
  16. #
  17. #  
  18. ##############################################################################
  19.  
  20. #### $Workfile:   dbase.pel  $: DBase support functions
  21.  
  22. global function dBaseDialect( dialect )
  23. {
  24.    if ( argcount() < 1 ) 
  25.    {
  26.       dialect = tolower( prompt_history(
  27.                         "DB_DIALECT", "dBase Dialect: ", D_DIALECT, 1, "dbase_prompt" ))
  28.    }
  29.    else
  30.    {
  31.       dialect = tolower(dialect)
  32.    }
  33.    if ( dialect == "clipper50" || dialect == "clipper87" ||
  34.         dialect == "force"     || dialect == "dbase" )
  35.    {
  36.       D_DIALECT = dialect
  37.    }
  38.    else
  39.    {
  40.       D_DIALECT = "dbase"
  41.       warning("Valid choices are 'clipper87' 'clipper50' 'force' 'dbase'(default)")
  42.    }
  43.    ELEC_LANG = D_DIALECT
  44.  
  45.    if ( ELEC_LANG == "clipper87" ) 
  46.       setup_clipper87_template();
  47.    else if ( ELEC_LANG == "clipper50" ) 
  48.       setup_clipper50_template();
  49.    else if ( ELEC_LANG == "force" ) 
  50.       setup_force_template();
  51.    else 
  52.       setup_dbase_template();
  53. }
  54.  
  55. local function setup_clipper87_template()
  56. {
  57.    delete( language_template );    # delete last template and start over
  58.  
  59.    ELEC_LANG = "clipper87"
  60.  
  61.    language_template[ "#d" ] = "#define `var`"
  62.    language_template[ "#i" ] = "#include `var`"
  63.    language_template[ "&" ] = "\t\t&& `expression`"
  64.    language_template[ "(" ] = "( `expression` )"
  65.    language_template[ "*" ] = "***\n*** `comment` \n***"
  66.    language_template[ "[" ] = "[ `expression` ]"
  67.    language_template[ "al" ] = "alias `var` "
  68.    language_template[ "as" ] = "asc( `var` )"
  69.    language_template[ "at" ] = "at( `var`,)"
  70.    language_template[ "be" ] = "begin sequence\n\t`statement`\n\bend"
  71.    language_template[ "bf" ] = "bof( )"
  72.    language_template[ "ca" ] = "do case\n\tcase `condition`\n\t`statement`\n\botherwise\n\t`statement`\n\b\bendcase"
  73.    language_template[ "ch" ] = "chr( `var` )"
  74.    language_template[ "cl" ] = "clear `var` "
  75.    language_template[ "cm" ] = "cmonth( `var` )"
  76.    language_template[ "co" ] = "copy to `var` fields  for  while "
  77.    language_template[ "ct" ] = "ctod( `var` )"
  78.    language_template[ "da" ] = "day( `var` )"
  79.    language_template[ "dc" ] = "dtoc( `var` )"
  80.    language_template[ "de" ] = "delete `var` for  while "
  81.    language_template[ "do" ] = "do `statement` with "
  82.    language_template[ "ds" ] = "dtos( `var` )"
  83.    language_template[ "dt" ] = "date( )"
  84.    language_template[ "ef" ] = "elseif( `condition` )\n\t`statement`"
  85.    language_template[ "ef" ] = "eof( )"
  86.    language_template[ "el" ] = "else\n\t`statement`"
  87.    language_template[ "en" ] = "endif"
  88.    language_template[ "fo" ] = "for `expression`\n\t`statement`\n\bnext"
  89.    language_template[ "fu" ] = "function `name`\nparameters\n\t`statement`\n\breturn('')" 
  90.    language_template[ "gb" ] = "go bottom"
  91.    language_template[ "gt" ] = "go top"
  92.    language_template[ "ie" ] = "if( `expression` )\n\t`statement`\n\belse\n\t`statement`\n\bendif"
  93.    language_template[ "if" ] = "if( `expression` )\n\t`statement`\n\bendif"
  94.    language_template[ "ii" ] = "iif(( `expression` ),,)"
  95.    language_template[ "in" ] = "index `var` "
  96.    language_template[ "le" ] = "len( `var` )"
  97.    language_template[ "lo" ] = "lower( `var` )"
  98.    language_template[ "ma" ] = "max( `var`,)"
  99.    language_template[ "mi" ] = "min( `var`,)"
  100.    language_template[ "mo" ] = "month( `var` )"
  101.    language_template[ "pc" ] = "pcount( ) = `var` "
  102.    language_template[ "pi" ] = "picture `var` "
  103.    language_template[ "pr" ] = "procedure `name`\nparameters\n\t`statement`\n\breturn"
  104.    language_template[ "pu" ] = "public `statement`"
  105.    language_template[ "pv" ] = "private `statement`"
  106.    language_template[ "ra" ] = "rat( `var`,)"
  107.    language_template[ "re" ] = "replicate( `var`,)"
  108.    language_template[ "rp" ] = "replace `var` "
  109.    language_template[ "rs" ] = "restore screen from `var` "
  110.    language_template[ "se" ] = "select `var` "
  111.    language_template[ "sp" ] = "space( `var` )"
  112.    language_template[ "ss" ] = "save screen to `var` "
  113.    language_template[ "su" ] = "substr( `var`,,)"
  114.    language_template[ "tf" ] = "transform( `var`,)"
  115.    language_template[ "tr" ] = "trim( `var` )"
  116.    language_template[ "up" ] = "upper( `var` )"
  117.    language_template[ "us" ] = "use `var` "
  118.    language_template[ "va" ] = "val( `var` )"
  119.    language_template[ "vl" ] = "valid( `var` )"
  120.    language_template[ "wh" ] = "do while ( `condition` )\n\t`statement`\n\benddo"
  121.    language_template[ "yr" ] = "year( `var` )"
  122. }
  123.  
  124. local function setup_clipper50_template()
  125. {
  126.    delete( language_template );    # delete last template and start over
  127.  
  128.    ELEC_LANG = "clipper50"
  129.  
  130.    language_template[ "#c" ] = "#command `var`\t=>\t"
  131.    language_template[ "#d" ] = "#define `var`"
  132.    language_template[ "#i" ] = "#include \"`file`\""
  133.    language_template[ "#t" ] = "#translate `var`\t=>\t"
  134.    language_template[ "&" ] = "\t\t// `expression`"
  135.    language_template[ "(" ] = "( `expression` )"
  136.    language_template[ "*" ] = "/*\n** `comment` \n*/"
  137.    language_template[ "/" ] = "// `comment` "
  138.    language_template[ "[" ] = "[ `expression` ]"
  139.    language_template[ "{" ] = "{ `expression` }"
  140.    language_template[ "al" ] = "alias( )"
  141.    language_template[ "ar" ] = "Array( `var` )"
  142.    language_template[ "as" ] = "asc( `var` )"
  143.    language_template[ "at" ] = "at( `var`,)"
  144.    language_template[ "be" ] = "begin sequence\n\t`statement`\n\bend"
  145.    language_template[ "bf" ] = "bof( )"
  146.    language_template[ "ca" ] = "do case\n\tcase `expression`\n\t`statement`\n\botherwise\n\t`statement`\n\b\bend"
  147.    language_template[ "ch" ] = "chr( `var` )"
  148.    language_template[ "cm" ] = "cmonth( `var` )"
  149.    language_template[ "ct" ] = "ctod( `var` )"
  150.    language_template[ "da" ] = "day( `var` )"
  151.    language_template[ "dc" ] = "dtoc( `var` )"
  152.    language_template[ "ds" ] = "dtos( `var` )"
  153.    language_template[ "dt" ] = "date( )"
  154.    language_template[ "dv" ] = "DevPos( `var`,)"
  155.    language_template[ "ef" ] = "eof( )"
  156.    language_template[ "ei" ] = "elseif( `var` )\n\t`statement`"
  157.    language_template[ "el" ] = "else\n\t`statement`"
  158.    language_template[ "en" ] = "end"
  159.    language_template[ "fo" ] = "for `var` := `start` to `finish`\n\t`statement`\n\bnext"
  160.    language_template[ "fu" ] = "function `name`( )\n\t`statement`\n\breturn(NIL)"
  161.    language_template[ "ie" ] = "if( `condition` )\n\t`statement`\n\belse\n\t`statement`\n\bend"
  162.    language_template[ "if" ] = "if( `condition` )\n\t`statement`\n\bend"
  163.    language_template[ "ii" ] = "iif(( `condition` ),,)"
  164.    language_template[ "in" ] = "index `var` "
  165.    language_template[ "lc" ] = "local `var` "
  166.    language_template[ "le" ] = "len( `var` )"
  167.    language_template[ "lo" ] = "lower( `var` )"
  168.    language_template[ "ma" ] = "max( `var`,)"
  169.    language_template[ "mi" ] = "min( `var`,)"
  170.    language_template[ "mo" ] = "month( `var` )"
  171.    language_template[ "pc" ] = "pcount( ) == `var` "
  172.    language_template[ "pr" ] = "procedure `name`\nparameters\n\t`statement`\n\breturn"
  173.    language_template[ "pu" ] = "public `var` "
  174.    language_template[ "pv" ] = "private `var` "
  175.    language_template[ "qo" ] = "QOut( `var` )"
  176.    language_template[ "qq" ] = "QQOut( `var` )"
  177.    language_template[ "ra" ] = "rat( `var`,)"
  178.    language_template[ "re" ] = "replicate( `var`,)"
  179.    language_template[ "rp" ] = "FIELD-> `var` := `value`"
  180.    language_template[ "rs" ] = "restscreen(0, 0, maxrow(), maxcol(), `var` )"
  181.    language_template[ "sp" ] = "space( `var` )"
  182.    language_template[ "ss" ] = " `var` := savescreen(0, 0, maxrow(), maxcol())"
  183.    language_template[ "st" ] = "static `var` "
  184.    language_template[ "su" ] = "substr( `var`,,)"
  185.    language_template[ "tf" ] = "transform( `var`,)"
  186.    language_template[ "tr" ] = "trim( `var` )"
  187.    language_template[ "up" ] = "upper( `var` )"
  188. #     language_template[ "us" ] = "use `var` "
  189.    language_template[ "va" ] = "val( `var` )"
  190.    language_template[ "vt" ] = "valtype( `var` )"
  191.    language_template[ "wh" ] = "while( `condition` )\n\t`statement`\n\bend"
  192.    language_template[ "yr" ] = "year( `var` )"
  193.    #############################################################################
  194.    # Special Note: The following macro expansions are supplied in two forms.
  195.    # The first form is the form preferred by Nantucket for use with Clipper 5.0
  196.    # The second form is the translation form as performed by the Clipper 5.0
  197.    # preprocessor. It is to the programmer's discretion to choose which of
  198.    # these macro sets to utilize, however it should be noted that the use of
  199.    # the internal form may not be supported in future Clipper releases.
  200.    #############################################################################
  201.    ## Nantucket preferred form
  202.    #language_template[ "cl" ] = "clear"
  203.    #language_template[ "gb" ] = "go bottom"
  204.    #language_template[ "gt" ] = "go top"
  205.    #language_template[ "se" ] = "select @"
  206.    #language_template[ "us" ] = "use @"
  207.    ## Internal form
  208.    language_template[ "cl" ] = "__Clear()"
  209.    language_template[ "gb" ] = "__dbGoBottom()"
  210.    language_template[ "gt" ] = "__dbGoTop()"
  211.    language_template[ "se" ] = "__dbSelect( `var` )"
  212.    language_template[ "us" ] = "__dbUse(0,NIL, `var`,,.T.,.F.)"
  213.    #####################################################################
  214. }
  215.  
  216. local function setup_force_template()
  217. {
  218.    delete( language_template );    # delete last template and start over
  219.  
  220.    ELEC_LANG = "force"
  221.  
  222.    language_template[ "#d" ] = "#define `var`"
  223.    language_template[ "#i" ] = "#include `name`"
  224.    language_template[ "*" ]  = "**\n**\t`comment`\n**"
  225.    language_template[ "as" ] = "asc( `var` )"
  226.    language_template[ "at" ] = "at( `var`,)"
  227.    language_template[ "bf" ] = "bof( )"
  228.    language_template[ "ca" ] = "DO CASE\n\tCASE `var`\n\t`statement`\n\bOTHERWISE\n\t`statement`\n\b\bENDCASE"
  229.    language_template[ "cd" ] = "COLUMNDEF\n\t`column`\n\bENDDEF"
  230.    language_template[ "ch" ] = "chr( `var` )"
  231.    language_template[ "cl" ] = "CLEAR `var` "
  232.    language_template[ "cm" ] = "cmonth( `var` )"
  233.    language_template[ "co" ] = "COPY `var` TO `var` "
  234.    language_template[ "ct" ] = "ctod( `var` )"
  235.    language_template[ "da" ] = "day( `var` )"
  236.    language_template[ "dc" ] = "dtoc( `var` )"
  237.    language_template[ "dd" ] = "DBFDEF `var`\n\t`statement`\n\bENDDEF"
  238.    language_template[ "de" ] = "DELETE `var` "
  239.    language_template[ "do" ] = "DO `statement` WITH `var`"
  240.    language_template[ "ef" ] = "eof( )"
  241.    language_template[ "el" ] = "ELSE\n\t`statement`"
  242.    language_template[ "en" ] = "ENDIF"
  243.    language_template[ "fm" ] = "FORMAT `var`\n\tENDPRO"
  244.    language_template[ "fu" ] = "FUNCTION `name`\nPARAMETERS\n\t`statement`\n\bENDPRO"
  245.    language_template[ "gb" ] = "GOTO BOTTOM"
  246.    language_template[ "gd" ] = "GROUPDEF\n\t`group`\n\bENDDEF"
  247.    language_template[ "gt" ] = "GOTO TOP"
  248.    language_template[ "id" ] = "INDEXDEF\n\t`index`\n\bENDDEF"
  249.    language_template[ "ie" ] = "IF( `condition` )\n\t`statement`\n\bELSE\n\t`statement`\n\bENDIF"
  250.    language_template[ "if" ] = "IF( `condition` )\n\t`statement`\n\bENDIF"
  251.    language_template[ "in" ] = "INDEX `var` "
  252.    language_template[ "ld" ] = "LABELDEF `var`\n\t`label`\n\bENDDEF"
  253.    language_template[ "le" ] = "len( `var` )"
  254.    language_template[ "lo" ] = "locate `var` "
  255.    language_template[ "lo" ] = "lower( `var` )"
  256.    language_template[ "mo" ] = "month( `var` )"
  257.    language_template[ "pi" ] = "picture `var` "
  258.    language_template[ "pr" ] = "PROCEDURE `name`\nPARAMETERS\n\t`statement`\n\bENDPRO"
  259.    language_template[ "ra" ] = "rat( `var`,)"
  260.    language_template[ "rd" ] = "REPORTDEF `var`\n\t`report`\n\bENDDEF"
  261.    language_template[ "re" ] = "replicate( `var`,)"
  262.    language_template[ "rp" ] = "replace `var`"
  263.    language_template[ "rs" ] = "restorescrn( `var` )"
  264.    language_template[ "ru" ] = "REPEAT\n\t`statement`\n\bUNTIL `condition` "
  265.    language_template[ "se" ] = "SET `var` "
  266.    language_template[ "sg" ] = "SUBGROUPDEF\n\t`subgroup`\n\bENDDEF"
  267.    language_template[ "ss" ] = "savescrn( `var`,,,)"
  268.    language_template[ "st" ] = "stuff( `var`)"
  269.    language_template[ "su" ] = "substr( `var`,,)"
  270.    language_template[ "tr" ] = "trim( `var` )"
  271.    language_template[ "up" ] = "upper( `var` )"
  272.    language_template[ "us" ] = "USE `var` "
  273.    language_template[ "va" ] = "val( `var` )"
  274.    language_template[ "vd" ] = "VARDEF\n\t`statement`\n\bENDDEF"
  275.    language_template[ "wh" ] = "DO WHILE ( `condition` )\n\t`statement`\n\bENDDO"
  276.    language_template[ "yr" ] = "year( `var` )"
  277. }
  278.  
  279. local function setup_dbase_template()
  280. {
  281.    delete( language_template );    # delete last template and start over
  282.  
  283.    ELEC_LANG = "dbase"
  284.  
  285.    language_template[ "&" ] = "\t\t&& `var`"
  286.    language_template[ "(" ] = "( `var` )"
  287.    language_template[ "*" ] = "**\n**\t`comment`\n**"
  288.    language_template[ "[" ] = "[ `index` ]"
  289.    language_template[ "al" ] = "ALIAS `var` "
  290.    language_template[ "as" ] = "ASC( `var` )"
  291.    language_template[ "at" ] = "AT( `var`,)"
  292.    language_template[ "bf" ] = "BOF( )"
  293.    language_template[ "ca" ] = "DO CASE\n\tCASE `var`\n\t`statement`\n\bOTHERWISE\n\t`statement`\n\b\bENDCASE"
  294.    language_template[ "ch" ] = "CHR( `var` )"
  295.    language_template[ "cl" ] = "CLEAR `var` "
  296.    language_template[ "cm" ] = "CMONTH( `var` )"
  297.    language_template[ "co" ] = "COPY `var` TO `var` "
  298.    language_template[ "ct" ] = "CTOD( `var` )"
  299.    language_template[ "da" ] = "DAY( `var` )"
  300.    language_template[ "dc" ] = "DTOC( `var` )"
  301.    language_template[ "de" ] = "DELETE `var` "
  302.    language_template[ "do" ] = "DO `var` WITH `var` "
  303.    language_template[ "ds" ] = "DTOS( `var` )"
  304.    language_template[ "dt" ] = "DATE( )"
  305.    language_template[ "ef" ] = "EOF( )"
  306.    language_template[ "el" ] = "ELSE\n\t`statement`"
  307.    language_template[ "en" ] = "ENDIF"
  308.    language_template[ "fu" ] = "FUNCTION `name`\nPARAMETERS\n\t`statement`\n\bRETURN( )"
  309.    language_template[ "gb" ] = "GO BOTTOM"
  310.    language_template[ "gt" ] = "GO TOP"
  311.    language_template[ "ie" ] = "IF( `var` )\n\t`statement`\n\bELSE\n\t`statement`\n\bENDIF"
  312.    language_template[ "if" ] = "IF( `condition`)\n\t`statement`\n\bENDIF"
  313.    language_template[ "ii" ] = "IIF(( `condition` ),,)"
  314.    language_template[ "in" ] = "INDEX `var` "
  315.    language_template[ "le" ] = "LEN( `var` )"
  316.    language_template[ "lo" ] = "LOCATE `var` "
  317.    language_template[ "lw" ] = "LOWER( `var` )"
  318.    language_template[ "ma" ] = "MAX( `var`,)"
  319.    language_template[ "mi" ] = "MIN( `var`,)"
  320.    language_template[ "mo" ] = "MONTH( `var` )"
  321.    language_template[ "pc" ] = "PCOUNT() =  `var` "
  322.    language_template[ "pi" ] = "PICTURE `var` "
  323.    language_template[ "pr" ] = "PROCEDURE `name`\nPARAMETERS\n\t`statement`\n\bRETURN"
  324.    language_template[ "pu" ] = "PUBLIC `var` "
  325.    language_template[ "pv" ] = "PRIVATE `var` "
  326.    language_template[ "ra" ] = "RAT( `var`,)"
  327.    language_template[ "re" ] = "REPLICATE( `var`,)"
  328.    language_template[ "rp" ] = "REPLACE `var` "
  329.    language_template[ "rs" ] = "RESTORE SCREEN FROM `var` "
  330.    language_template[ "se" ] = "SELECT `var` "
  331.    language_template[ "sp" ] = "SPACE( `var` )"
  332.    language_template[ "ss" ] = "SAVE SCREEN TO `var` "
  333.    language_template[ "su" ] = "SUBSTR( `var`,,)"
  334.    language_template[ "tf" ] = "TRANSFORM( `var`,)"
  335.    language_template[ "tr" ] = "TRIM( `var` )"
  336.    language_template[ "up" ] = "UPPER( `var` )"
  337.    language_template[ "us" ] = "USE `var` "
  338.    language_template[ "va" ] = "VAL( `var` )"
  339.    language_template[ "vl" ] = "VALID( `var` )"
  340.    language_template[ "wh" ] = "DO WHILE ( `conditon` )\n\t`statement`\n\bENDDO"
  341.    language_template[ "yr" ] = "YEAR( `var` )"
  342. }
  343.  
  344.