Angielskifrancuskihiszpański

Ad


Ulubiona usługa OnWorks

m4posix - Online w chmurze

Uruchom m4posix w bezpłatnym dostawcy hostingu OnWorks w systemie Ubuntu Online, Fedora Online, emulatorze online systemu Windows lub emulatorze online systemu MAC OS

Jest to polecenie m4posix, które można uruchomić u dostawcy bezpłatnego hostingu OnWorks przy użyciu jednej z naszych wielu bezpłatnych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online systemu Windows lub emulator online systemu MAC OS

PROGRAM:

IMIĘ


m4 — procesor makro

STRESZCZENIE


m4 [-s] [−D Nazwa[=val]]... [−U Nazwa]... filet...

OPIS


Połączenia m4 Narzędzie to makroprocesor, który odczytuje jeden lub więcej plików tekstowych i przetwarza je
zgodnie z zawartymi w nich makroinstrukcjami i zapisz wyniki na standardowe wyjście.

OPCJE


Połączenia m4 narzędzie powinno być zgodne z woluminem Base Definitions POSIX.1-2008, Sekcja 12.2,
Użyteczność Składnia Wytyczne, z tą różnicą, że kolejność −D i −U opcje będą
znaczące, a opcje mogą być przeplatane operandami.

Obsługiwane będą następujące opcje:

-s Włącz wyjście synchronizacji linii dla c99 faza preprocesora (tzn.
#linia dyrektywy).

−D Nazwa[=val]
określić Nazwa do val lub do wartości null, jeśli =val jest pominięty.

−U Nazwa Nieokreślony Nazwa.

OPERANDY


Obsługiwane będą następujące argumenty:

filet Ścieżka pliku tekstowego, który ma zostać przetworzony. Jeśli nie filet jest dane lub jeśli tak jest '-',
należy odczytać standardowe wejście.

STDIN


Standardowym wejściem powinien być plik tekstowy, który jest używany, jeśli nie filet podano operand lub jeśli jest
is '-'.

WEJŚCIE AKTA


Plik wejściowy nazwany przez filet operand powinien być plikiem tekstowym.

ŚRODOWISKO ZMIENNE


Następujące zmienne środowiskowe mają wpływ na wykonanie m4:

JĘZYK Podaj wartość domyślną dla zmiennych internacjonalizacji, które nie są ustawione lub
zero. (Patrz tom Definicje podstawowe POSIX.1‐2008, Sekcja 8.2,
Umiędzynarodowienie Zmienne o pierwszeństwo internacjonalizacji
zmienne używane do określania wartości kategorii ustawień regionalnych).

LC_ALL Jeśli jest ustawiony na niepustą wartość ciągu, nadpisz wartości wszystkich pozostałych
zmienne internacjonalizacji.

LC_CTYPE Określ lokalizację dla interpretacji sekwencji bajtów danych tekstowych
jako znaki (na przykład jednobajtowe w przeciwieństwie do wielobajtowych znaków w
argumenty i pliki wejściowe).

LC_MESSAGES
Określ ustawienia regionalne, które powinny być używane do wpływania na format i zawartość
komunikaty diagnostyczne zapisywane z błędem standardowym.

NLSPATH Określ lokalizację katalogów wiadomości do przetwarzania LC_MESSAGES.

ASYNCHRONICZNY WYDARZENIA


Domyślna.

STDOUT


Standardowe wyjście powinno być takie samo jak pliki wejściowe, po przetworzeniu dla makra
ekspansja.

STDERR


Do wyświetlania ciągów znaków z rozszerzeniem . zostanie użyty błąd standardowy błąd makro, śledzenie makr
włączone przez ślad makro, zdefiniowany tekst dla makr napisanych przez zrzut makro lub
dla komunikatów diagnostycznych.

WYDAJNOŚĆ AKTA


Brak.

ROZSZERZONY OPIS


Połączenia m4 Narzędzie porównuje każdy token z wejścia z zestawem wbudowanych i
makra zdefiniowane przez użytkownika. Jeśli token pasuje do nazwy makra, to token będzie
zastąpiony tekstem definiującym makro, jeśli istnieje, i ponownie przeskanowany pod kątem pasujących nazw makr.
Gdy żadna część tokena nie będzie pasować do nazwy makra, zostanie ona zapisana w standardzie
wyjście. Makra mogą posiadać argumenty, w którym to przypadku należy je podstawić
tekst definiujący przed jego ponownym skanowaniem.

Wywołania makro mają postać:

Nazwa(argument1, argument2..., argumentować)

Nazwy makr powinny składać się z liter, cyfr i podkreśleń, gdzie pierwszy znak
nie jest cyfrą. Tokeny w innej formie nie będą traktowane jako makra.

Aplikacja zapewnia, że bezpośrednio następuje po nazwie
makro. Jeśli po tokenie pasującym do nazwy makra nie następuje a
parenthesis>, jest to traktowane jako użycie tego makra bez argumentów.

Jeśli po nazwie makra następuje a , jego argumentami są
-oddzielne żetony pomiędzy i dopasowanie
nawias>. Niecytowane białe znaki poprzedzające każdy argument będą ignorowane.
Wszystkie pozostałe znaki, łącznie z końcowymi białymi znakami, zostają zachowane.
znaki zawarte pomiędzy I postacie nie
rozgraniczaj argumenty.

Argumenty są definiowane pozycyjnie i odniesienia. Sznurek „1 USD” w tekście definiującym
zastępuje się pierwszym argumentem. Systemy będą obsługiwać co najmniej dziewięć argumentów;
za pomocą ciągów można odwoływać się tylko do pierwszych dziewięciu „1 USD” do „9 USD”, włącznie. The
ciąg „0 USD” zostaje zastąpiona nazwą makra. Sznurek „$#” jest zastąpiony przez
liczba argumentów jako ciąg. Sznurek „$*” zostaje zastąpiony listą wszystkich
argumenty oddzielone przez postacie. Sznurek „$@” zostaje zastąpiony listą wszystkich
argumentów oddzielonych przez znaków, a każdy argument jest cytowany przy użyciu metody
bieżące lewe i prawe cytowanie ciągów znaków. Sznurek „${” powoduje nieokreślone zachowanie.

Jeśli podano mniej argumentów niż w definicji makra, pominięte argumenty
przyjmuje się, że są zerowe. Nie jest błędem podanie większej liczby argumentów niż w pliku
definicja makro.

Żadnemu specjalnemu znaczeniu nie przypisuje się żadnych znaków zawartych pomiędzy dopasowaniem lewej i prawej strony
ciągi cytujące, ale same ciągi cytujące są odrzucane. Domyślnie lewy
Ciąg cytowania składa się z poważnego akcentu (cytatu wstecznego) i prawego ciągu cytowania
składa się z ostrego akcentu (pojedynczy cudzysłów); zobacz także zmieńcytat makro.

Komentarze są zapisywane, ale nie są skanowane pod kątem pasujących nazw makr; domyślnie początek
Ciąg komentarza składa się z składa się ze znaku i ciągu komentarza końcowego
z . Zobacz także zmiana com i dnl makra.

Połączenia m4 narzędzie udostępni następujące wbudowane makra. Można je na nowo zdefiniować
ale kiedy to nastąpi, pierwotne znaczenie zostaje utracone. Ich wartości powinny mieć wartość null, chyba że
stwierdzono inaczej. W poniższych opisach termin definiowanie XNUMX odnosi się do wartości
makro: drugi argument metody określić makro m.in. Z wyjątkiem
pierwszy argument do eval makro, wszystkie argumenty numeryczne wbudowanych makr powinny być
interpretowane jako wartości dziesiętne. Wartości ciągu tworzone jako tekst definiujący plik
dekret, divnum, przyrost, wskaźnik, len, syswal wbudowane makra powinny mieć postać pliku a
stała dziesiętna zdefiniowana w języku C.

zmiana com Połączenia zmiana com makro ustawi ciągi komentarza początkowego i komentarza końcowego. Z nie
argumentów, mechanizm komentowania zostanie wyłączony. Z pojedynczą wartością inną niż null
argument, argument ten stanie się komentarzem początkowym i być
stać się ciągiem komentarza końcowego. Z dwoma argumentami innymi niż null, pierwszy argument
stanie się ciągiem komentarza początkowego, a drugi argument stanie się ciągiem
ciąg komentarza końcowego. Zachowanie jest nieokreślone, jeśli podano którykolwiek argument
ale zero. Systemy obsługują ciągi komentarzy składające się z co najmniej pięciu znaków.

zmieńcytat
Połączenia zmieńcytat makro ustawi ciągi cudzysłowu początkowego i cudzysłowu końcowego. Z nie
argumentów, cudzysłowy zostaną ustawione na wartości domyślne (tj. ``).
Zachowanie jest nieokreślone, jeśli istnieje pojedynczy argument lub którykolwiek z argumentów
zero. W przypadku dwóch argumentów niezerowych pierwszy argument stanie się początkiem
cudzysłów, a drugi argument stanie się ciągiem cudzysłowu końcowego. Systemy
obsługuje ciągi cudzysłowów składające się z co najmniej pięciu znaków.

dekret Tekst określający dekret makro będzie jego pierwszym argumentem pomniejszonym o
1. Błędem będzie podanie argumentu zawierającego jakąkolwiek wartość nieliczbową
postacie. Zachowanie jest nieokreślone, jeśli dekret nie następuje bezpośrednio po
A .

określić Drugi argument stanie się tekstem definiującym makro o nazwie
pierwszy argument. Nie jest określone, czy określić makro usuwa wszystkie poprzednie
definicje makra nazwanego przez jego pierwszy argument lub zachowuje wszystko oprócz
aktualna definicja makra. Zachowanie jest nieokreślone, jeśli określić nie jest
zaraz po nim następuje a .

zdefiniuj Tekst określający zdefiniuj makro będzie cytowaną definicją (przy użyciu
bieżące ciągi cytowań) swoich argumentów. Zachowanie jest nieokreślone, jeśli zdefiniuj
nie następuje bezpośrednio po a .

odwracać Połączenia m4 narzędzie utrzymuje dziewięć tymczasowych buforów, ponumerowanych od 1 do 9 włącznie.
Po przetworzeniu ostatniego wejścia, wszelkie umieszczone dane wyjściowe
w tych buforach będą wypisywane na standardowe wyjście w kolejności numerycznej buforów.
Połączenia odwracać makro przekieruje przyszłe dane wyjściowe do bufora określonego przez swoje
argument. Podanie braku argumentu lub argumentu 0 przywróci normalność
proces wyjściowy. Wyjście zostanie przekierowane do strumienia o liczbie ujemnej
odrzucona. Zachowanie jest zdefiniowane w implementacji, jeśli numer strumienia jest większy niż 9
jest specyficzne. Błędem będzie podanie argumentu zawierającego jakikolwiek nie-
znaki numeryczne.

divnum Tekst określający divnum makro będzie numerem wyjścia prądowego
strumień jako ciąg.

dnl Połączenia dnl makro spowoduje m4 aby odrzucić wszystkie wprowadzone znaki do i włącznie
Następny .

zrzut Połączenia zrzut makro zapisze zdefiniowany tekst do błędu standardowego dla każdego z
makra określone jako argumenty lub, jeśli nie określono żadnych argumentów, dla wszystkich
makra.

błąd Połączenia błąd makro zapisuje swoje argumenty do błędu standardowego. Zachowanie jest
nieokreślone, jeśli błąd nie następuje bezpośrednio po a .

eval Połączenia eval makro oceni swój pierwszy argument jako wyrażenie arytmetyczne,
stosując arytmetykę liczb całkowitych ze znakiem z co najmniej 32-bitową precyzją. Przynajmniej
następujące operatory języka C będą obsługiwane, z pierwszeństwem,
skojarzenie i zachowanie opisane w Sekcja 1.1.2.1, Arytmetyka
Detaliczność i operacje:

()
jednoargumentowy +
jednoargumentowy -
~

!
binarny *
/
%
binarny +
binarny −
<<
>>
<
<=
>
>=
==
!=
binarny i
^
|
&&
||

Systemy obsługują liczby ósemkowe i szesnastkowe zgodnie z normą ISO C.
Drugi argument, jeśli jest określony, wyznacza podstawę wyniku; jeśli
argument jest pusty lub nieokreślony, wartość domyślna to 10. Zachowanie nie jest określone, jeśli
podstawa wypada poza zakresem od 2 do 36 włącznie. Trzeci argument, jeśli
określony, ustawia minimalną liczbę cyfr w wyniku. Zachowanie jest
nieokreślony, jeśli trzeci argument jest mniejszy od zera. Będzie to błąd
określ drugi lub trzeci argument zawierający dowolne znaki inne niż numeryczne. The
zachowanie jest nieokreślone, jeśli eval nie następuje bezpośrednio po a
nawias>.

jeślidef Jeśli pierwszy argument funkcji jeślidef makro jest zdefiniowane, tekstem definiującym będzie
drugi argument. W przeciwnym razie tekstem definiującym będzie trzeci argument,
jeśli określono, lub ciąg pusty, jeśli nie. Zachowanie jest nieokreślone, jeśli jeślidef
nie następuje bezpośrednio po a .

Jeśli inaczej Połączenia Jeśli inaczej makro przyjmuje trzy lub więcej argumentów. Jeśli pierwsze dwa argumenty
porównaj jako równe ciągi (po rozwinięciu obu argumentów w makrze), zdefiniowanie
tekst będzie trzecim argumentem. Jeśli pierwsze dwa argumenty nie są porównywane jako
równe ciągi znaków i istnieją trzy argumenty, tekst definiujący powinien mieć wartość null. Jeśli
pierwsze dwa argumenty nie są porównywane jako równe ciągi znaków i są cztery argumenty or
pięciu argumentów, tekstem definiującym będzie czwarty argument. Jeśli pierwsze dwa
argumenty nie są porównywane jako równe ciągi znaków i istnieje sześć lub więcej argumentów,
pierwsze trzy argumenty zostaną odrzucone, a przetwarzanie rozpocznie się od nowa
pozostałe argumenty. Zachowanie jest nieokreślone, jeśli Jeśli inaczej nie jest
zaraz po nim następuje a .

zawierać Tekst definiujący dla zawierać makro będzie zawartością pliku o nazwie
przez pierwszy argument. Jeśli pliku nie można odczytać, będzie to błąd. The
zachowanie jest nieokreślone, jeśli zawierać nie następuje bezpośrednio po a
nawias>.

przyrost Tekst określający przyrost makro będzie jego pierwszym argumentem zwiększanym o
1. Błędem będzie podanie argumentu zawierającego jakąkolwiek wartość nieliczbową
postacie. Zachowanie jest nieokreślone, jeśli przyrost nie następuje bezpośrednio po
A .

wskaźnik Tekst określający wskaźnik makro będzie pierwszą pozycją znaku (jak np
string) w pierwszym argumencie, gdzie zaczyna się ciąg pasujący do drugiego argumentu
(zero pochodzenia) lub -1, jeśli drugi argument nie występuje. Zachowanie jest
nieokreślone, jeśli wskaźnik nie następuje bezpośrednio po a .

len Tekst określający len makro będzie długością (jako ciąg znaków) pliku
pierwszy argument. Zachowanie jest nieokreślone, jeśli len nie jest natychmiast przestrzegane
przez A .

m4wyjście Wyjdź z m4 pożytek. Jeśli podano pierwszy argument, jest to wyjście
kod. Wartość domyślna to zero. Określenie argumentu będzie błędem
zawierające jakiekolwiek znaki inne niż numeryczne.

m4wrap Pierwszy argument zostanie przetworzony po osiągnięciu EOF. Jeśli m4wrap makro
zostanie użyte wielokrotnie, podane argumenty będą przetwarzane w kolejności
w którym m4wrap makra zostały przetworzone. Zachowanie jest nieokreślone, jeśli m4wrap
nie następuje bezpośrednio po a .

zrób temp Tekst definiujący będzie pierwszym argumentem, z dowolnym zakończeniem 'X' znaków
zastąpiony bieżącym identyfikatorem procesu w postaci ciągu znaków. Zachowanie jest nieokreślone
if zrób temp nie następuje bezpośrednio po a .

mkstemp Pierwszy argument należy przyjąć jako szablon do utworzenia pustego pliku z
wleczoną 'X' znaki zastąpione znakami z przenośnej nazwy pliku
zestaw znaków. Zachowanie jest nieokreślone, jeśli pierwszy argument nie kończy się na
co najmniej sześć 'X' postacie. Jeśli plik tymczasowy zostanie pomyślnie utworzony, wówczas
tekstem definiującym makro będzie nazwa nowego pliku. Identyfikator użytkownika
pliku powinien być ustawiony na efektywny identyfikator użytkownika procesu. Identyfikator grupy
pliku powinien być ustawiony na identyfikator grupy katalogu nadrzędnego pliku lub na
efektywny identyfikator grupy procesu. Bity uprawnień dostępu do plików są ustawione
w taki sposób, że tylko właściciel może zarówno czytać, jak i zapisywać plik, niezależnie od
aktualne umaska procesu. Jeśli nie można utworzyć pliku, tekst definiujący
makra będzie pustym ciągiem znaków. Zachowanie jest nieokreślone, jeśli mkstemp
nie następuje bezpośrednio po a .

popdef Połączenia popdef makro usunie bieżącą definicję swoich argumentów, zastępując je
tę definicję z poprzednią. Jeśli nie ma wcześniejszej definicji,
makro jest niezdefiniowane. Zachowanie jest nieokreślone, jeśli popdef nie jest od razu
następnie a .

pushdef Połączenia pushdef makro będzie równoważne z określić makro z wyjątkiem
że zachowa wszelkie aktualne definicje do przyszłego wyszukiwania za pomocą
popdef makro. Zachowanie jest nieokreślone, jeśli pushdef nie jest natychmiast przestrzegane
przez A .

przesunięcie Tekst definiujący dla przesunięcie makro będzie jego listą oddzieloną przecinkami
argumenty oprócz pierwszego. Każdy argument będzie cytowany przy użyciu prądu
cytując ciągi znaków. Zachowanie jest nieokreślone, jeśli przesunięcie nie jest od razu
następnie a .

zawierać Połączenia zawierać makro będzie równoważne z zawierać makro, z tą różnicą, że to
nie stanowi błędu, jeśli plik jest niedostępny. Zachowanie jest nieokreślone
if zawierać nie następuje bezpośrednio po a .

podstr Tekst definiujący dla podstr makro będzie podciągiem pierwszego
argument rozpoczynający się od pozycji znaku zerowego przesunięcia określonej przez sekundę
argument. Trzeci argument, jeśli został określony, będzie liczbą znaków
wybierać; jeśli nie określono, znaki od punktu początkowego do końca
pierwszy argument stanie się tekstem definiującym. Nie będzie to błędem
określ punkt początkowy poza końcem pierwszego argumentu i zdefiniuj
tekst powinien mieć wartość null. Błędem będzie podanie argumentu zawierającego any
znaki nienumeryczne. Zachowanie jest nieokreślone, jeśli podstr nie jest
zaraz po nim następuje a .

syscmd Połączenia syscmd makro zinterpretuje swój pierwszy argument jako wiersz poleceń powłoki. The
definiujący tekst będzie wynikiem ciągu tego polecenia. Wynik ciągu
nie będą ponownie skanowane pod kątem makr podczas ustawiania tekstu definiującego. Brak wyjścia
przekierowanie zostanie zrealizowane przez m4 pożytek. Wartość statusu wyjścia z pliku
polecenie można pobrać za pomocą metody syswal makro. Zachowanie jest nieokreślone, jeśli
syscmd nie następuje bezpośrednio po a .

syswal Tekst określający syswal makro będzie wartością wyjściową narzędzia
ostatnio wywołany przez syscmd makro (jako ciąg znaków).

ślad Połączenia ślad makro umożliwi śledzenie makr określonych jako argumenty,
lub, jeśli nie określono żadnych argumentów, dla wszystkich makr. Wynikiem śledzenia powinno być
zapisane do standardowego błędu w nieokreślonym formacie.

śledzenie Połączenia śledzenie makro wyłączy śledzenie makr określonych jako argumenty,
lub, jeśli nie określono żadnych argumentów, dla wszystkich makr.

tranzyt Tekst określający tranzyt makro będzie pierwszym argumentem każdego
znak występujący w drugim argumencie zastąpiony odpowiednim
znak z trzeciego argumentu. Jeśli nie określono żadnego znaku zastępczego
jakiś znak źródłowy, ponieważ drugi argument jest dłuższy niż trzeci
argumentu, znak ten zostanie usunięty z pierwszego argumentu w tranzyt's
definiowanie tekstu. Zachowanie jest nieokreślone, jeśli '-' postać pojawia się w środku
drugi lub trzeci argument w dowolnym miejscu poza pierwszym lub ostatnim znakiem. The
zachowanie jest nieokreślone, jeśli ten sam znak pojawia się więcej niż raz w
drugi argument. Zachowanie jest nieokreślone, jeśli tranzyt nie jest od razu
następnie a .

niezdefiniowany Połączenia niezdefiniowany makro usunie wszystkie definicje (w tym te zachowane przy użyciu
dotychczasowy pushdef makro) makr nazwanych na podstawie jego argumentów. Zachowanie jest
nieokreślone, jeśli niezdefiniowany nie następuje bezpośrednio po a .

odwrócić Połączenia odwrócić makro spowoduje natychmiastowe wyświetlenie dowolnego tekstu w buforach tymczasowych
nazwane jako argumenty lub wszystkie bufory tymczasowe, jeśli nie określono żadnych argumentów.
Bufory można nieprzekierowywać do innych buforów tymczasowych. Niezakłócony
odrzuć zawartość bufora tymczasowego. Zachowanie jest nieokreślone, jeśli:
argument zawiera dowolne znaki inne niż numeryczne.

EXIT STATUS


Zwracane są następujące wartości wyjściowe:

0 Pomyślne zakończenie.

>0 Wystąpił błąd

Jeśli m4wyjście używane jest makro, wartość wyjściową można określić w pliku wejściowym.

KONSEKWENCJE OF BŁĘDY


Domyślna.

Połączenia następujący działy jest informacyjny.

WNIOSEK ZASTOSOWANIE


Połączenia zdefiniuj makro jest przydatne do zmiany nazw makr, zwłaszcza wbudowanych.

Ponieważ eval jest zgodny z normą ISO C, niektóre operacje mają niezdefiniowane zachowanie. W niektórych
implementacje, dzielenie lub reszta przez zero powodują fatalny sygnał, nawet jeśli dzielenie
występuje na zwartej gałęzi „&&” or „||”. Każda operacja, która się przepełnia
arytmetyka ze znakiem daje niezdefiniowane zachowanie. Podobnie, korzystając z przesunięcie operatorzy z
wielkość przesunięcia, która nie jest dodatnia i mniejsza niż precyzja, jest niezdefiniowana, tak jak jest
przesuwając liczbę ujemną w prawo. Historycznie rzecz biorąc, nie wszystkie implementacje były zgodne z C-
zasady pierwszeństwa języka: '~' i '!' były niższe niż '=='; '==' i '!=' nie były niższe
niż '<'Oraz '|' nie był niższy od '^'; liberalne użycie „()” może wymusić pożądane
pierwszeństwo nawet w przypadku tych niezgodnych implementacji. Poza tym trochę tradycyjnych
traktowane wdrożenia '^' jako operator potęgowania, chociaż większość implementacji
teraz użyj „**” jako rozszerzenie do tego celu.

Kiedy makro zostało pomnożone poprzez pushdef makro, nie jest określone, czy
dotychczasowy określić makro zmieni tylko najnowszą definicję (tak jak by popdef i
pushdef) lub zastąp cały stos definicji jedną definicją (jak chociaż
by niezdefiniowany i pushdef). Aplikacja wymagająca określonego zachowania dla określić
makro w tym przypadku może je odpowiednio przedefiniować.

Aplikacje powinny używać mkstemp makro zamiast przestarzałego zrób temp makro dla
tworzenie plików tymczasowych.

PRZYKŁADY


Jeśli plik m4src zawiera linie:

Połączenia wartość of „VER” is „WER”.
ifdef(`VER', „VER” is zdefiniowane do be WER., VER is nie zdefiniowany.)
jeśli inaczej (VER, 1, „VER” is „WER”.)
jeśli inaczej (VER, 2, „VER” is `VER'., „VER” is nie 2.)
zakończenia

potem polecenie

m4 m4src

lub polecenie:

m4 −U VER m4src

daje wynik:

Połączenia wartość of VER is „WER”.
VER is nie zdefiniowane.

VER nie jest 2.
zakończenia

Komenda:

m4 −D VER m4src

daje wynik:

Połączenia wartość of VER is „”.
VER is zdefiniowane do be .

VER nie jest 2.
zakończenia

Komenda:

m4 −D WER=1 m4src

daje wynik:

Połączenia wartość of VER is „1”.
VER is zdefiniowane do be 1.
VER is 1.
VER is nie 2.
zakończenia

Komenda:

m4 −D WER=2 m4src

daje wynik:

Połączenia wartość of VER is „2”.
VER is zdefiniowane do be 2.

VER wynosi 2.
zakończenia

RACJONALNE UZASADNIENIE


Traktowano historyczne zachowania oparte na Systemie V „${” w makrodefinicji jako dwa dosłowne
postacie. Jednak ta sekwencja pozostaje nieokreślona, ​​aby mogły oferować implementacje
rozszerzenia takie jak „${11}” co oznacza jedenasty parametr pozycyjny. Makra nadal mogą być
zdefiniowane przy użyciu odpowiedniego użycia zagnieżdżonego cudzysłowu, aby otrzymać literał „${” na wyjściu
po ponownym skanowaniu usuwa zagnieżdżone cudzysłowy.

W tranzyt Poprawiono wbudowane, historyczne zachowanie oparte na Systemie V '-' jako dosłowny; GNU ANTYLOPA
zachowanie traktuje to jako zakres. Ta wersja standardu pozwala na jedno i drugie zachowanie.

PRZYSZŁOŚĆ KIERUNKI


Brak.

Korzystaj z m4posix online, korzystając z usług onworks.net


Darmowe serwery i stacje robocze

Pobierz aplikacje Windows i Linux

  • 1
    Phaser
    Phaser
    Phaser to szybka, darmowa i zabawna gra otwarta
    źródłowa struktura gry HTML5, która oferuje
    Renderowanie WebGL i Canvas w poprzek
    przeglądarek internetowych na komputery i urządzenia mobilne. Gry
    może być współ...
    Pobierz Phaser
  • 2
    Silnik WASAL
    Silnik WASAL
    VASSAL to silnik gry do tworzenia
    elektroniczne wersje tradycyjnej tablicy
    i gry karciane. Zapewnia wsparcie dla
    renderowanie elementów gry i interakcja,
    i ...
    Pobierz silnik VASSAL
  • 3
    OpenPDF — rozwidlenie iText
    OpenPDF — rozwidlenie iText
    OpenPDF to biblioteka Java do tworzenia
    i edycji plików PDF z LGPL i
    Licencja open source MPL. OpenPDF to
    LGPL/MPL open source następca iText,
    w ...
    Pobierz OpenPDF — rozwidlenie iText
  • 4
    SAGA GIS
    SAGA GIS
    SAGA - System do Automatyzacji
    Analizy geologiczne - to geografia
    Oprogramowanie systemu informacyjnego (GIS) z
    ogromne możliwości geodanych
    przetwarzanie i an...
    Pobierz SAGA GIS
  • 5
    Przybornik dla Java/JTOOpen
    Przybornik dla Java/JTOOpen
    IBM Toolbox for Java / JTOpen to
    biblioteka klas Java obsługująca
    klient/serwer i programowanie internetowe
    modeli do systemu z systemem OS/400,
    i5/OS, lub...
    Pobierz Zestaw narzędzi dla języka Java/JTOpen
  • 6
    D3.js
    D3.js
    D3.js (lub D3 dla dokumentów opartych na danych)
    to biblioteka JavaScript, która pozwala
    do tworzenia dynamicznych, interaktywnych danych
    wizualizacje w przeglądarkach internetowych. Z D3
    ty...
    Pobierz plik D3.js
  • więcej »

Komendy systemu Linux

Ad