Difference between revisions of "Begin"

From Free Pascal wiki
Jump to navigationJump to search
 
(10 intermediate revisions by 8 users not shown)
Line 1: Line 1:
The [[Keyword|keyword]] '''begin''' is used to indicate the start of the executable section of a [[Function|function]], [[Method|method]] of an [[Object|object]], [[Procedure|procedure]], [[Program|program]], [[property]] of an object, or is used to delineate the start of a [[block]] statement.
+
{{Begin}}
  
For a function, method, procedure, program, or property, it is used after all [[Const|const]], [[Type|type]] and [[Var|var]] declarations, and before the first executable statement.  It is always terminated by an [[End|end]] statement:
+
The [[Reserved word|reserved word]] <syntaxhighlight lang="pascal" inline>begin</syntaxhighlight> marks the start of the definition of the executable portion of a [[Block|block]].
 +
In conjunction with [[End|<syntaxhighlight lang="pascal" inline>end</syntaxhighlight>]] it is also used to group [[statement]]s into a so-called “compound statement”.
  
<delphi>
+
{{Note|In [[Pascal]] a compound statement does not create a new scope.
  program Project1;
+
Only blocks do.}}
  var (..);
 
  begin
 
    (..);
 
  end.
 
</delphi>
 
  
For a block statement, it delineates the top of the block, and is also terminated by an end statement:
+
In [[Extended Pascal|extended Pascal]] <syntaxhighlight lang="pascal" inline>to begin do …</syntaxhighlight> starts the definition of the [[Initialization|<syntaxhighlight lang="pascal" inline>initialization</syntaxhighlight> part of a module]].
  
<delphi>
+
While every <syntaxhighlight lang="pascal" inline>begin</syntaxhighlight> must have a corresponding <syntaxhighlight lang="pascal" inline>end</syntaxhighlight>, not all occurrences of <syntaxhighlight lang="pascal" inline>end</syntaxhighlight> have a corresponding <syntaxhighlight lang="pascal" inline>begin</syntaxhighlight>.
  if (..) then
 
    begin
 
      (..)
 
    end
 
  else
 
    begin
 
      (..)
 
    end;
 
</delphi>
 
  
A '''begin''' ''must'' be closed with '''[[End|end]]'''.
+
== syntax justification ==
 +
Lots of programming languages use a pair of single characters to indicate boundaries.
 +
Typing out the words <syntaxhighlight lang="pascal" inline>begin</syntaxhighlight> and <syntaxhighlight lang="pascal" inline>end</syntaxhighlight> is indeed more cumbersome than writing <syntaxhighlight lang="c" inline>{ }</syntaxhighlight>.
 +
However, the meaning of such characters is not as obvious as words are.
 +
 
 +
== matching ==
 +
* The source editor of the [[Lazarus IDE]] supports a “find matching begin/end” function.
 +
* [[vim#navigation|vim]] can be configured to support matching Pascal’s <syntaxhighlight lang="pascal" inline>begin</syntaxhighlight>/<syntaxhighlight lang="pascal" inline>end</syntaxhighlight>, too.
  
 
{{Keywords}}
 
{{Keywords}}

Latest revision as of 22:52, 21 August 2021

Deutsch (de) English (en) español (es) suomi (fi) français (fr) русский (ru) 中文(中国大陆)‎ (zh_CN)

The reserved word begin marks the start of the definition of the executable portion of a block. In conjunction with end it is also used to group statements into a so-called “compound statement”.

Note-icon.png

Note: In Pascal a compound statement does not create a new scope. Only blocks do.

In extended Pascal to begin do starts the definition of the initialization part of a module.

While every begin must have a corresponding end, not all occurrences of end have a corresponding begin.

syntax justification

Lots of programming languages use a pair of single characters to indicate boundaries. Typing out the words begin and end is indeed more cumbersome than writing { }. However, the meaning of such characters is not as obvious as words are.

matching

  • The source editor of the Lazarus IDE supports a “find matching begin/end” function.
  • vim can be configured to support matching Pascal’s begin/end, too.


Keywords: begindoelseendforifrepeatthenuntilwhile