Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini menjelaskan tata bahasa formal praproscesor C dan C++. Ini mencakup sintaksis direktif dan operator praproscessing. Untuk informasi selengkapnya, lihat Direktif Praproscesor dan Pragma serta __pragma kata kunci dan _Pragma .
Definisi untuk ringkasan tata bahasa
Terminal adalah titik akhir dalam definisi sintaksis. Tidak ada resolusi lain yang dimungkinkan. Terminal mencakup sekumpulan kata yang dipesan dan pengidentifikasi yang ditentukan pengguna.
Nonterminal adalah tempat penampung dalam sintaksis. Sebagian besar didefinisikan di tempat lain dalam ringkasan sintaks ini. Definisi bisa saja rekursif. Nonterminal berikut didefinisikan di bagian Konvensi leksikal dari Referensi Bahasa C++:
constant, , constant-expressionidentifier, keyword, , operator,punctuator
Komponen opsional ditunjukkan oleh opt yang disubskripsi. Misalnya, sintaks berikut menunjukkan ekspresi opsional yang diapit kurung kurawal:
{expressionMemilih }
Konvensi dokumen
Konvensi menggunakan atribut font yang berbeda untuk komponen sintaks yang berbeda. Simbol dan font adalah sebagai berikut:
| Atribut | Deskripsi |
|---|---|
nonterminal |
Jenis miring menunjukkan nonterminal. |
#include |
Terminal dalam jenis tebal adalah kata dan simbol khusus literal yang harus dimasukkan sebagaimana ditunjukkan. Karakter dalam konteks ini selalu peka huruf besar/kecil. |
| opt | Nonterminal diikuti dengan opt selalu opsional. |
| typeface default | Karakter dalam set yang dijelaskan atau tercantum dalam typeface ini dapat digunakan sebagai terminal dalam pernyataan. |
Titik dua (:) setelah nonterminal memperkenalkan definisinya. Definisi alternatif tercantum pada baris terpisah.
Dalam blok sintaks kode, simbol-simbol ini dalam typeface default memiliki arti khusus:
| Simbol | Deskripsi |
|---|---|
| [ ] | Kurung siku mengelilingi elemen opsional. |
| { | } | Kurung kurawal mengelilingi elemen alternatif, dipisahkan oleh bilah vertikal. |
| ... | Menunjukkan pola elemen sebelumnya dapat diulang. |
Dalam blok sintaks kode, koma (,), titik (.), titik koma (), titik dua (;), tanda kurung (:( )), tanda kutip ganda ("), dan tanda kutip tunggal (') adalah literal.
Tata bahasa pra-prosesor
control-line:
#defineidentifier token-stringMemilih
#defineidentifier ( identifieropt , ... , identifieropt opt ) token-string
#include "path-spec"
#include <path-spec>
#linedigit-sequence "filename"Memilih
#undef identifier
#error token-string
#pragma token-string
constant-expression:
defined( identifier )
defined identifier
ekspresi konstanta lainnya
conditional:
if-partelif-partsopt opt else-part endif-line
if-part:
if-line text
if-line:
#if constant-expression
#ifdef identifier
#ifndef identifier
elif-parts:
elif-line text
elif-parts elif-line text
elif-line:
#elif constant-expression
else-part:
else-line text
else-line:
#else
endif-line:
#endif
digit-sequence:
digit
digit-sequence digit
digit: salah satu dari
0 1 2 3 4 5 6 7 8 9
token-string:
String dari token
token:
keyword
identifier
constant
operator
punctuator
filename:
Nama file sistem operasi legal
path-spec:
Jalur file hukum
text:
Urutan teks apa pun
Catatan
Nonterminal berikut diperluas di bagian Konvensi leksikal dari Referensi Bahasa C++: constant, , identifierconstant-expression, keyword, operator, dan punctuator.