ANSI C 5

ANSI C 5



DODATEK A PRZEWODNIK JĘZYKA C____

A12.9 Pusta instrukcja preprocesora

Wiersz zawierający jedynie znak #

nie ma żadnego skutku.

A12.10 Nazwy zdefiniowane w preprocesorze

Istnieje kilka nazw, które są zdefiniowane w preprocesorze i służą do produkowania specjalnych informacji. Definicji tych nazw, jak również operatora defined (występującego w wyrażeniach preprocesora), nie można odwołać ani zmienić.

__LINĘ__Dziesiętna stała całkowita zawierająca numer bieżącego wiersza programu źródłowego.

__FILE__Stała napisowa zawierająca nazwę tłumaczonego pliku.

__DATĘ Stała napisowa zawierająca datę tłumaczenia programu; jej format

-    ”Mmm dd rrrr”.

__TIME__Stała napisowa zawierająca czas tłumaczenia programu; jej format

-    ”gg:mm:ss”.

__STDC__Stała 1. Z zamierzenia identyfikator ten powinien być zdefiniowany

z wartością 1 jedynie w implementacjach dostosowanych do standardu.

Wiersze sterujące #error i #pragma pojawiły się wraz z ANSI C; nazwy zdefiniowane w preprocesorze są nowe, ale niektóre były już dostępne w kilku implementacjach.


Gramatyka

Poniższa gramatyka jest podsumowaniem składni podanej w poprzednich punktach tego dodatku. Zawartość jest dokładnie taka sama, ale zmieniono kolejność reguł składniowych.

W gramatyce występują nie zdefiniowane symbole terminalne: stała-całkowita, stała--znakowa, napis i stała-wyliczenia\ słowa i symbole zapisane pismem specjalnym są podanymi dosłownie symbolami terminalnymi. Gramatykę tę można mechanicznie przekształcić do tekstu akceptowalnego przez automatyczne generatory analizatorów składniowych. Oprócz dodania oznaczenia wymaganego dla alternatyw w produkcjach składniowych, należy również rozwinąć konstrukcję „jeden z” i (jeśli tego wy-

A13 GRAMATYKA


maga generator analizatorów składniowych) powtórzyć te produkcje, które zawierają symbol opc - raz z opcjonalną konstrukcją i raz bez niej. Z jedną dodatkową zmianą, polegającą na usunięciu produkcji nazwa-typedef: identyfikator i zdefiniowaniu symbolu nazwa-typedef jako symbolu terminalnego, gramatyka ta jest akceptowalna przez generator analizatorów składniowych YACC. Gramatyka ta zawiera tylko jeden konflikt, spowodowany niejednoznacznością if-else.

jednostka-tłumaczenia:

deklaracja-zewnętrzna

jednostka-tłumaczenia deklaracja-zewnętrzna

deklaracja-zewnętrzna: definicja-funkcji deklaracja

definicja-funkcji:

specyfikatory-deklaracjiupc deklarator lista-deklaracjinpc instrukcja-złozona deklaracja:

specyfikatory-deklaracji inicjowana-lista-deklaratorówopc ;

lista-deklaracji: deklaracja

lista-deklaracji deklaracja specyfikatory-deklaracji:

specyfikator-klasy-pamięci specyfikatory-deklaracjiopc specyfikator-typu specyfikatory-deklaracji opc kwalifikator-typu specyfikatory-deklaracjiopc

specyfikator-klasy-pamięci: jeden z

auto register static extern typedef

specyfikator-typu: jeden z

void char short int long float double signed unsigned specyfikator-struktury-unii specyfikator-wyliczenia nazwa-typedef

kwalifikator-typu: jeden z const volatile

specyfikator-struktury-unii:

struktura-unia identyfikatoropc { lista-deklaracji-składowych } struktura-unia identyfikator

313


Wyszukiwarka

Podobne podstrony:
ANSI C 5 DODATEK A PRZEWODNIK JĘZYKA C_________A2.1 Jednostki leksykalne Istnieje sześć klas jedno
ANSI C 5 DODATEK A PRZEWODNIK JĘZYKA CA7.8 Operatory przesunięcia Operatory przesunięcia « i » są
ANSI C 5 DODATEK A PRZEWODNIK JĘZYKA C Struktury i tablice są obiektami złożonymi. Jeśli obiekt zł
ANSI C 7 DODATEK A PRZEWODNIK JĘZYKA C______ Etykiety przypadków (case) i domyślne (default) są uż
ANSI C 6 DODATEK A PRZEWODNIK JĘZYKA C_____.____A2.5.2 Stałe znakowe Stała znakowa jest ciągiem zł
ANSI C 7 DODATEK A PRZEWODNIK JĘZYKA C------- czaj umieszczane w oddzielnych wierszach; w kilku pr
ANSI C 8 DODATEK A PRZEWODNIK JĘZYKA C_________ Wszystkie z typów zmiennopozycyjnych: pojedynczej
ANSI C 9 DODATEK A PRZEWODNIK JĘZYKA C_______—- Gdy wartość całkowita jest przekształcana do typu
ANSI C 0 DODATEK A PRZEWODNIK JĘZYKA C_________ Obiekt typu całkowitego można jawnie przekształcić
ANSI C 1 DODATEK A PRZEWODNIK JĘZYKA C Implementacje różnią się reakcjami na dzielenie przez zero
ANSI C 2 DODATEK A PRZEWODNIK JĘZYKA C W pierwszym wydaniu książki typ wyrażenia przyrostkowego by
ANSI C 4 DODATEK A PRZEWODNIK JĘZYKA C_______ wynikiem jest 1; jeśli odnosi się do tablicy, to wyn
ANSI C 6 DODATEK A PRZEWODNIK JĘZYKA C_____ Wynikiem tej operacji jest bitowa różnica symetryczna
ANSI C 7 DODATEK A PRZEWODNIK JĘZYKA C__________ rekurencyjnie, podskładowych nie może być kwalifi
ANSI C 8 DODATEK A PRZEWODNIK JĘZYKA
ANSI C 9 DODATEK A PRZEWODNIK JĘZYKA C________■ Kwalifikatory typu wskazują specjalne właściwości
ANSI C 0 DODATEK A PRZEWODNIK JĘZYKA C ___——- łujących się do samych siebie: struktura lub unia mo
ANSI C 1 DODATEK A PRZEWODNIK JĘZYKA C union { struct { int type; ł n; struct { int type
ANSI C 2 DODATEK A PRZEWODNIK JĘZYKA CA8.6 Znaczenie deklaratorów Lista deklaratorów pojawia się p

więcej podobnych podstron