!--a11y-->

ABAP プログラム言語の構文は以下のエレメントで構成されています。
ABAP プログラムは個別の ABAP 命令で構成されます。各命令はキーワードで始まり、ピリオドで終了します。

PROGRAM FIRST_PROGRAM.
WRITE 'My First Program'.
この例では、1 行に 1 つずつ、2 つの命令があります。キーワードは PROGRAM と WRITE です。プログラムは画面上に一覧を表示します。この場合、一覧は行 "My First Program" で構成されます。
キーワードによって、命令のカテゴリが決まります。カテゴリの種類の概要については、ABAP 命令 を参照してください。
この図は、ABAP 命令の構造を示したものです。
ABAP には、書式制限はありません。任意の書式で命令を入力することができます。したがって、命令を字下げしたり、1 行に複数の命令を書いたり、1 つの命令を複数行にわたって書くことができます。
1 つの命令内では単語を 1 つ以上のスペースで区切る必要があります。ラインマーカの終わりもスペースとして解釈されます。

以下のプログラムフラグメント
PROGRAM
TEST.
WRITE 'This is a statement'.
は、以下のように書くこともできます。
PROGRAM TEST.WRITE 'This is a statement'.
または、以下のように書くこともできます。
PROGRAM
TEST.
WRITE
'This is a statement'.
このように任意の書式化によって、分かりやすいプログラムを作成してください。
テキストリテラルはプログラムコード内の一連の英数字であり、引用符で囲まれています。ABAP 命令内のテキストリテラルが複数の行にまたがっている場合は、以下のような問題が発生します。
キ 引用符間のスペースはすべてテキストリテラルに含まれるものとして解釈されます。
キ 引用符で閉じられていない行中のテキストリテラルの文字は、エディタにより下線として解釈されます。
1 行に収まりきらないテキストリテラルを入力する場合は、'&' 文字を使用して一続きのテキストリテラルを 1 つに結合することができます。

以下のプログラムフラグメント
PROGRAM
TEST.
WRITE 'This
is
a statement'.
では、引用符で囲まれたすべてのスペースがリテラルに挿入され、文字が下線に変換されます。
以下のプログラムフラグメント
PROGRAM
TEST.
WRITE 'This'
&
' is ' &
'a statement'.
では、3 つのテキストリテラルが 1 つに結合しています。
ABAP プログラム言語では、最初の部分が同じである連続した命令を連結して 1 つのチェーン命令を書くことができます。
一連の命令を連結するには、同一部分を 1 回だけ書き、その後にコロン(:) を入れます。コロンの後に、個別命令の残りの部分を書いて、それぞれをカンマで区切ります。最後の部分の後にピリオド (.) を入れて、チェーンの終了をシステムに知らせるようにしてください。

命令の順序:
WRITE
SPFLI-CITYFROM.
WRITE SPFLI-CITYTO.
WRITE SPFLI-AIRPTO.
チェーン命令:
WRITE: SPFLI-CITYFROM, SPFLI-CITYTO, SPFLI-AIRPTO.
チェーン命令では、命令の先頭がコロンによって変数部分と分離されています。コロンまたはカンマの後には、スペースをいくつでも挿入することができます。
たとえば、同じ命令を次のように書くこともできます。
WRITE:
SPFLI-CITYFROM,
SPFLI-CITYTO,
SPFLI-AIRPTO.
チェーン命令では、最初の部分 ( コロンの前) に命令のキーワード以外も使用することができます。

命令の順序:
SUM = SUM + 1.
SUM = SUM +2.
SUM = SUM +3.
SUM = SUM +4.
チェーン命令:
SUM = SUM +: 1, 2, 3, 4.
コメントとは、読者に意図を伝えるために ABAP プログラムの命令間に挿入できるテキストです。コメントは、先行する符号 * ( 行の先頭) と " ( 行中の任意の位置に挿入可能) によって識別されます。1 行全体をコメントにする場合は、行の先頭にアスタリスク (*) を入れます。そうすることによって、プログラムの生成時にその行全体が無視されます。1 行の一部をコメントにする場合は、コメントの前に二重引用符 (") を入れます。二重引用符で示されたコメントはスペースとして解釈されます。

************************************************
* PROGRAM
SAPMTEST *
* WRITTEN BY KARL BYTE,
06/27/1995 *
* LAST CHANGED BY RITA DIGIT,
10/01/1995 *
* TASK:
DEMONSTRATION *
************************************************
PROGRAM SAPMTEST.
************************************************
*
DECLARATIONS
*
************************************************
DATA:
FLAG "
GLOBAL FLAG
NUMBER TYPE I "
COUNTER
......
************************************************
* PROCESSING
BLOCKS *
************************************************
......
