这些单词具有固定的含义,不能被改变或重新定义
程序员定义的符号,可以改变或重用,是语法规则的主体
通常是数学符号或其它操作,如+ - * 等
通常是空格
在源码中通常用数字或字符常量来定义确定值
Free Pascal允许字母、数字和特殊字符出现在源文件中
特殊字符
’ + - * / = < > [ ] . , ( ) : ^ @ { } $ # & %
特殊字符组合
<< >> ** <> >< <= >= := += -= *= /= (* *) (. .) //
(*这是旧样式的注释*)
{这是Turbo Pascal注释}
//这是Delphi注释。直到行结束,所有内容都将被忽略。
嵌套注释的有效方法:
{评论1(*评论2 *)}
(*评论1 {评论2} *)
{评论1 //评论2}
(*评论1 //评论2 *)
//评论1(*评论2 *)
//评论1 {评论2}
两个注释必须在一行上。以下两个将给出错误:
//有效的评论{不再是有效的评论!!
}
备注:在TP或Delphi模式下,不允许嵌套注释
absolute | and | array | asm | begin | break | case | const |
constructor | continue | destructor | div | do | downto | else | end |
file | for | function | goto | if | implementation | in | inherited |
inline | interface | label | mod | nil | not | object | of |
on | operator | or | packed | procedure | program | record | reintroduce |
repeat | self | set | shl | shr | string | then | to |
type | unit | until | uses | var | while | with | xor |
Delphi保留字跟Turbo Pascal一样,但是增加了如下内容:
as | class | except | exports | finalization | finally | initialization |
is | library | on | property | raise | threadvar | try |
除了拥有Turbo Pascal和Delphi的保留字之外,Free Pascal还增加了下面的保留字:
dispose | exit | false | new | true |
另外,Pascal有几个预先定义的标识符。你可以用你自己的定义来覆盖他们,但这样做你就没法使用这些标识符在Pascal中原来所具有的功能了。
abs | arctan | boolean | char | cos | dispose | eof | eoln |
exp | false | input | integer | ln | maxint | new | odd |
ord | output | pack | page | pred | read | readln | real |
reset | rewrite | round | sin | sqr | sqrt | succ | text |
true | trunc write | writeln |
|
Pascal是不区分大小写的!MyProgram,MYPROGRAM和mYpRoGrAm这三者是完全相同的。但为了可读性考虑,最好有意义地使用大小写!
标识符长度可以是任意的,但是许多Pascal编译器实际上只看开头的大约32个字符。也就是说,下面两个标识符:
ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFAlphaBeta
ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGammaDelta
ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGammaDelta
可能对于某些编译器来说它们两者是相同的,因为第一个不同之处出现在第33个字符。
为了让你的代码兼容所有的编译器,使用合理长度的标识符——最多15个字符。这样,你打字的时候也省事。
absolute | abstract | Alias | Assembler | Cdecl | Cppdecl | Default | Export |
External | Far | Far16 | Forward | Index | Local | Name | Near |
Nostackframe | Oldfpccall | Override | Pascal | Private | protected | Public | Published |
Read | Register | Reintroduce | Safecall | Softfloat | Stdcall | Virtual | write |
备注诸如Byte,Boolean之类的预定义类型和诸如maxint之类的常量不是保留字。它们是在系统单元中声明的标识符。这意味着可以在其他单位中重新定义这些类型。但是,不鼓励程序员这样做,因为这会引起很多混乱。
备注从2.5.1版开始,可以通过用&符号转义保留字来将保留字用作标识符。这意味着以下是可能的
var
&var:integer;
begin
&var:=1;
Writeln(&var);
end.
但是,不建议在新代码中使用此功能,因为它会使代码的可读性降低。它主要用于在保留字列表更改并且包含尚未保留的字时修复旧代码
大多数标识符(常量,变量,函数或方法,属性)可以在其定义后附加提示指令:
deprecated 不推荐使用
不建议使用此标识符,而应使用替代方法。不推荐使用的关键字之后可以是带有消息的字符串常量。每当遇到标识符时,编译器都会显示此消息。
Experimental 实验性的
Platform 平台
这是一个与平台有关的标识符:可能并非在所有平台上都定义了它。
Unimplemented 未实现
示例:
Const
AConst=12deprecated;
var
p:integerplatform;
FunctionSomething:Integer;experimental;
begin
Something:=P+AConst;
end;
begin
Something;
end.
输出如下:
testhd.pp(11,15)Warning:Symbol"p"is not portable
testhd.pp(11,22)Warning:Symbol"Aconst" is deprecated
testhd.pp(15,3)Warning:Symbol"Something" is experimental
提示指令可以遵循各种标识符:单位,常量,类型,变量,函数,过程和方法。
整数类型常量,Free Pascal支持四种格式:
十六进制格式(以16为底),方法与Turbo Pascal相同。要以十六进制格式指定常数值,请在其前面加上美元符号($)。因此,十六进制$ FF等于255十进制。请注意,使用十六进制常量时,大小写无关紧要。
从1.0.7版开始,还支持八进制格式(以8为基数)。要以八进制格式指定常数,请在其前面加上与号(&)。例如,八进制表示法中将15指定为&17。
二进制表示法(以2为底)。可以在二进制数前加上百分号(%)来指定二进制数。因此,可以二进制表示形式将255指定为%11111111。
备注TP或Delphi兼容模式不支持八进制和二进制表示法。
标签是源代码中某个位置的名称,可以使用goto语句将其从另一个位置跳转到该位置。标签是标准标识符或数字序列。
备注该-Sg或-Mtp可以使用标签之前的开关必须被指定。默认情况下,Free Pascal不支持label和goto语句。该{$ GOTO ON}指令也可以用来允许使用标签和goto语句。
以下是有效标签的示例:
Label
123,
abc;
字符串(或简称为字符串)是零个或多个字符(字节大小)的序列,由标准的8位ASCII字符或Unicode(通常为UTF-8编码)字符组成。
用单引号括起来 ‘’
只能出现在程序源代码的单行中
字符串中不能出现回车符或换行符。可用#13 #10代替
字符集引号之间没有任何东西(‘’)是一个空字符串。
转义字符请使用 #,而不是C的反斜杠 \ 。
以通过键入两次将单引号字符嵌入到字符串中。
在字符串中使用其他字符集,必须使用 {$ CODEPAGE XXX} 伪指令或编译器的-Fc命令行选项指定源文件的代码页。使用{$ CodePage XXX}后,字符串中的字符将被解释为XXX代码页中的字符。
以下是有效的字符串常量:
’This is a pascal string’
’’
’a’
’A tabulator character: ’#9’ is easy to embed’
以下是无效的字符串:
’the string starts here
and continues here’
上面的字符串改成下面的示例则是正确的字符口中 :
’the string starts here’#13#10’ and continues here’
或者这样也行
’the string starts here’#10’ and continues here’
类unix系统包括Mac OS X则是如下形式
’the string starts here’#13’ and continues here’