home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 5 Edit
/
05-Edit.zip
/
p2demo21.exe
/
PEL
/
PASCAL.PEL
< prev
next >
Wrap
Text File
|
1995-03-21
|
10KB
|
177 lines
# $Header: P:\source\wmacros\pascal.pev 1.5 21 Mar 1995 13:16:48 WALKER $
##############################################################################
#
# Compuware Corporation
# 31440 Northwestern Highway
# Farmington Hills, Michigan 48334-2564
#
# This source code listing contains information that is
# proprietary to Compuware Corporation and may not be copied
# duplicated, translated, transmitted, stored, retrieved
# or in any manner or by any method conveyed or disclosed
# to a third party or parties without express written
# permission from Compuware Corporation.
#
#
##############################################################################
#### $Workfile: pascal.pel $: Pascal support functions
function setup_pascal_template()
{
delete( language_template ); # delete last template and start over
ELEC_LANG = "pascal"
language_template[ "(" ] = "( `statement` )"
language_template[ "*" ] = "(***\n *** `comment` \n ***)"
language_template[ "[" ] = "[ `expression` ]"
language_template[ "{" ] = "{ `expression` }" # }
language_template[ "BE" ] = "BEGIN\n\t`statement`\n\bEND;\n"
language_template[ "CA" ] = "CASE `expression` OF\n\t`value` : `statement`;\n\bEND;"
language_template[ "CS" ] = "`value` : `statement`;"
language_template[ "EI" ] = "ELSE IF `expression` THEN\n\t`statement`;\n"
language_template[ "EL" ] = "ELSE\n\t`statement`;"
language_template[ "EN" ] = "END;"
language_template[ "FO" ] = "FOR `var` := `start` TO `finish` DO\n\tBEGIN\n\t`statement`;\n\bEND;"
language_template[ "FU" ] = "FUNCTION `name`( `parm` : `type` ) : `type`;\n\nBEGIN\n\t`statement`;\n\bEND;"
language_template[ "IE" ] = "IF ( `expression` ) THEN\n\t`statement-1`;\n\bELSE\n\t`statement-2`;\n"
language_template[ "IF" ] = "IF ( `expression` ) THEN\n\t`statement`; "
language_template[ "PG" ] = "PROGRAM `name`;\n"
language_template[ "PR" ] = "PROCEDURE `name`( `parm` : `type` );\nBEGIN\n\t`statement`;\n\bEND;"
language_template[ "RD" ] = "READLN ( `expression` );"
language_template[ "RE" ] = "REPEAT\n\t`statement`;\n\bUNTIL ( `expression` )"
language_template[ "VA" ] = "VAR\n\t`var` : `type`;\n"
language_template[ "VN" ] = "`var` : `type`;"
language_template[ "WH" ] = "WHILE ( `expression` ) DO\n\tBEGIN\n\t`statement`;\n\bEND;\n"
language_template[ "WR" ] = "WRITELN ( `expression` );"
language_template[ "be" ] = "begin\n\t`statement`\n\bend;\n"
language_template[ "ca" ] = "case `expression` of\n\t`value` : `statement`;\n\bend;"
language_template[ "cs" ] = "`value` : `statement`;"
language_template[ "ei" ] = "else if `expression` then\n\t`statement`;\n"
language_template[ "el" ] = "else\n\t`statement`;"
language_template[ "en" ] = "end;"
language_template[ "fo" ] = "for `var` := `start` to `finish` do\n\tbegin\n\t`statement`;\n\bend;"
language_template[ "fu" ] = "function `name`( `parm` : `type` ) : `type`;\n\nbegin\n\t`statement`;\n\bend;"
language_template[ "ie" ] = "if ( `expression` ) then\n\t`statement-1`;\n\belse\n\t`statement-2`;\n"
language_template[ "if" ] = "if ( `expression` ) then\n\t`statement`; "
language_template[ "pg" ] = "program `name`;\n"
language_template[ "pr" ] = "procedure `name`( `parm` : `type` );\nbegin\n\t`statement`;\n\bend;"
language_template[ "rd" ] = "readln ( `expression` );"
language_template[ "re" ] = "repeat\n\t`statement`;\n\buntil ( `expression` )"
language_template[ "va" ] = "var\n\t`var` : `type`;\n"
language_template[ "vn" ] = "`var` : `type`;"
language_template[ "wh" ] = "while ( `expression` ) do\n\tbegin\n\t`statement`;\n\bend;\n"
language_template[ "wr" ] = "writeln ( `expression` );"
}
global function add_pascal_type()
{
add_type("pascal", "Turbo Pascal", "pascal", "5 9", "1 77", "begin end (* *) { }", "\\",
default_buffer_flags, 0, 1, "()[];:,='", 0, 1);
}
global function load_factory_pascal_syntax()
{
local type = "pascal";
set_factory_categories( type );
add_syntax_item(type, KEYWORD, "and", CATEGORY_RESERVED);
add_syntax_item(type, KEYWORD, "array", CATEGORY_RESERVED);
add_syntax_item(type, KEYWORD, "begin", CATEGORY_RESERVED);
add_syntax_item(type, KEYWORD, "case", CATEGORY_RESERVED);
add_syntax_item(type, KEYWORD, "const", CATEGORY_RESERVED);
add_syntax_item(type, KEYWORD, "div", CATEGORY_RESERVED);
add_syntax_item(type, KEYWORD, "do", CATEGORY_RESERVED);
add_syntax_item(type, KEYWORD, "downto", CATEGORY_RESERVED);
add_syntax_item(type, KEYWORD, "else", CATEGORY_RESERVED);
add_syntax_item(type, KEYWORD, "end", CATEGORY_RESERVED);
add_syntax_item(type, KEYWORD, "file", CATEGORY_RESERVED);
add_syntax_item(type, KEYWORD, "for", CATEGORY_RESERVED);
add_syntax_item(type, KEYWORD, "function", CATEGORY_RESERVED);
add_syntax_item(type, KEYWORD, "goto", CATEGORY_RESERVED);
add_syntax_item(type, KEYWORD, "if", CATEGORY_RESERVED);
add_syntax_item(type, KEYWORD, "in", CATEGORY_RESERVED);
add_syntax_item(type, KEYWORD, "label", CATEGORY_RESERVED);
add_syntax_item(type, KEYWORD, "mod", CATEGORY_RESERVED);
add_syntax_item(type, KEYWORD, "nil", CATEGORY_RESERVED);
add_syntax_item(type, KEYWORD, "not", CATEGORY_RESERVED);
add_syntax_item(type, KEYWORD, "of", CATEGORY_RESERVED);
add_syntax_item(type, KEYWORD, "or", CATEGORY_RESERVED);
add_syntax_item(type, KEYWORD, "packed", CATEGORY_RESERVED);
add_syntax_item(type, KEYWORD, "procedure", CATEGORY_RESERVED);
add_syntax_item(type, KEYWORD, "program", CATEGORY_RESERVED);
add_syntax_item(type, KEYWORD, "record", CATEGORY_RESERVED);
add_syntax_item(type, KEYWORD, "repeat", CATEGORY_RESERVED);
add_syntax_item(type, KEYWORD, "set", CATEGORY_RESERVED);
add_syntax_item(type, KEYWORD, "then", CATEGORY_RESERVED);
add_syntax_item(type, KEYWORD, "to", CATEGORY_RESERVED);
add_syntax_item(type, KEYWORD, "type", CATEGORY_RESERVED);
add_syntax_item(type, KEYWORD, "until", CATEGORY_RESERVED);
add_syntax_item(type, KEYWORD, "var", CATEGORY_RESERVED);
add_syntax_item(type, KEYWORD, "while", CATEGORY_RESERVED);
add_syntax_item(type, KEYWORD, "with", CATEGORY_RESERVED);
add_syntax_item(type, KEYWORD, "false", CATEGORY_CONSTANT);
add_syntax_item(type, KEYWORD, "true", CATEGORY_CONSTANT);
add_syntax_item(type, KEYWORD, "maxint", CATEGORY_CONSTANT);
add_syntax_item(type, KEYWORD, "integer", CATEGORY_TYPE);
add_syntax_item(type, KEYWORD, "boolean", CATEGORY_TYPE);
add_syntax_item(type, KEYWORD, "real", CATEGORY_TYPE);
add_syntax_item(type, KEYWORD, "char", CATEGORY_TYPE);
add_syntax_item(type, KEYWORD, "string", CATEGORY_TYPE);
add_syntax_item(type, KEYWORD, "text", CATEGORY_TYPE);
add_syntax_item(type, KEYWORD, "interactive", CATEGORY_TYPE);
add_syntax_item(type, KEYWORD, "input", CATEGORY_RESERVED);
add_syntax_item(type, KEYWORD, "output", CATEGORY_RESERVED);
add_syntax_item(type, KEYWORD, "keyboard", CATEGORY_RESERVED);
add_syntax_item(type, KEYWORD, "abs", CATEGORY_FUNCTIONS);
add_syntax_item(type, KEYWORD, "atan", CATEGORY_FUNCTIONS);
add_syntax_item(type, KEYWORD, "chr", CATEGORY_FUNCTIONS);
add_syntax_item(type, KEYWORD, "cos", CATEGORY_FUNCTIONS);
add_syntax_item(type, KEYWORD, "eof", CATEGORY_FUNCTIONS);
add_syntax_item(type, KEYWORD, "eoln", CATEGORY_FUNCTIONS);
add_syntax_item(type, KEYWORD, "exp", CATEGORY_FUNCTIONS);
add_syntax_item(type, KEYWORD, "ln", CATEGORY_FUNCTIONS);
add_syntax_item(type, KEYWORD, "odd", CATEGORY_FUNCTIONS);
add_syntax_item(type, KEYWORD, "ord", CATEGORY_FUNCTIONS);
add_syntax_item(type, KEYWORD, "ioresult", CATEGORY_FUNCTIONS);
add_syntax_item(type, KEYWORD, "pred", CATEGORY_FUNCTIONS);
add_syntax_item(type, KEYWORD, "round", CATEGORY_FUNCTIONS);
add_syntax_item(type, KEYWORD, "sin", CATEGORY_FUNCTIONS);
add_syntax_item(type, KEYWORD, "sqr", CATEGORY_FUNCTIONS);
add_syntax_item(type, KEYWORD, "sqrt", CATEGORY_FUNCTIONS);
add_syntax_item(type, KEYWORD, "succ", CATEGORY_FUNCTIONS);
add_syntax_item(type, KEYWORD, "trunc", CATEGORY_FUNCTIONS);
add_syntax_item(type, KEYWORD, "length", CATEGORY_FUNCTIONS);
add_syntax_item(type, KEYWORD, "log", CATEGORY_FUNCTIONS);
add_syntax_item(type, KEYWORD, "concat", CATEGORY_FUNCTIONS);
add_syntax_item(type, KEYWORD, "copy", CATEGORY_FUNCTIONS);
add_syntax_item(type, KEYWORD, "pos", CATEGORY_FUNCTIONS);
add_syntax_item(type, KEYWORD, "pwroften", CATEGORY_FUNCTIONS);
add_syntax_item(type, KEYWORD, "get", CATEGORY_PROCEDURES);
add_syntax_item(type, KEYWORD, "new", CATEGORY_PROCEDURES);
add_syntax_item(type, KEYWORD, "put", CATEGORY_PROCEDURES);
add_syntax_item(type, KEYWORD, "read", CATEGORY_PROCEDURES);
add_syntax_item(type, KEYWORD, "readln", CATEGORY_PROCEDURES);
add_syntax_item(type, KEYWORD, "reset", CATEGORY_PROCEDURES);
add_syntax_item(type, KEYWORD, "rewrite", CATEGORY_PROCEDURES);
add_syntax_item(type, KEYWORD, "seek", CATEGORY_PROCEDURES);
add_syntax_item(type, KEYWORD, "write", CATEGORY_PROCEDURES);
add_syntax_item(type, KEYWORD, "writeln", CATEGORY_PROCEDURES);
add_syntax_item(type, KEYWORD, "delete", CATEGORY_PROCEDURES);
add_syntax_item(type, KEYWORD, "insert", CATEGORY_PROCEDURES);
add_syntax_item(type, BLOCK, "(* *)", CATEGORY_COMMENT);
add_syntax_item(type, LINE, "' '", CATEGORY_LITERAL);
set_escape_character(type, "\\")
set_style_delimiters(type, ".();,=:")
set_case_sensitive(type, 0)
}