EXM: Różnice pomiędzy wersjami

Przejdź do nawigacji Przejdź do wyszukiwania
Usunięte 298 bajtów ,  8 cze 2018
brak opisu edycji
Nie podano opisu zmian
Linia 347: Linia 347:
Składnia: <code>=<litera><łańcuch></code>
Składnia: <code>=<litera><łańcuch></code>


Działanie: zmiennej generacyjnej nazwanej pojedyncza literą (są 52 zmienne o nazwach A..Z i a..z) jest nadawana wartość: podany łańcuch. Pusty łańcuch usuwa dotychczasową definicję. Zmienne generacyjne mogą być użyte w dowolnym miejscu tekstu wprowadzanego z klawiatury. Znaki: '''\<litera>''' występujące w tekście i oznaczające zmienną generacyjną są zamieniane na łańcuch zdefiniowany zleceniem <code>=</code> (wstawiany tekst nie podlega makrorozwinięciu). Jeżeli wskazana zmienna generacyjna nie jest zdefiniowana, jej oznaczenie pozostaje w tekście bez zmian. Wartości zmiennych generacyjnych są listowane zleceniem <code>\</code>. Poza wymienionymi wyżej zmiennymi mogą być używane zmienne <code>-</code> i <code>=</code> określające znaczniki końca strony. Wiersz zawierający wyłącznie łańcuch zdefiniowany przez jedną z tych zmiennych kończy stronę. Z tym, że jeżeli łańcuch ten jest zdefiniowany zmienną <code>=<//code> i kończona strona ma numer nieparzysty, to następna strona ma numer będący kolejną liczbą nieparzystą. Po wywołaniu edytora zmienna <code>-</code> ma wartość: '''ff''' (znacznik końca strony przyjmowany przez programy listujące DLIST i LIST), natomiast zmienna <code>=</code> jest niezdefiniowana. Zmienne <code>-</code> i <code>=</code> mogą być przedefiniowane tak jak inne zmienne, ale definicje te muszą być zawarte w zbiorze EXMINI. W tekstach wprowadzanych z klawiatury znaki \- i \= są rozwijane tak jak inne zmienne generacyjne, ale tylko wtedy, gdy opcja 'number' ma wartość PNU (4.1).
Działanie: zmiennej generacyjnej nazwanej pojedyncza literą (są 52 zmienne o nazwach A..Z i a..z) jest nadawana wartość: podany łańcuch. Pusty łańcuch usuwa dotychczasową definicję. Zmienne generacyjne mogą być użyte w dowolnym miejscu tekstu wprowadzanego z klawiatury. Znaki: ''\<litera>'' występujące w tekście i oznaczające zmienną generacyjną są zamieniane na łańcuch zdefiniowany zleceniem <code>=</code> (wstawiany tekst nie podlega makrorozwinięciu). Jeżeli wskazana zmienna generacyjna nie jest zdefiniowana, jej oznaczenie pozostaje w tekście bez zmian. Wartości zmiennych generacyjnych są listowane zleceniem <code>\</code>. Poza wymienionymi wyżej zmiennymi mogą być używane zmienne <code>-</code> i <code>=</code> określające znaczniki końca strony. Wiersz zawierający wyłącznie łańcuch zdefiniowany przez jedną z tych zmiennych kończy stronę. Z tym, że jeżeli łańcuch ten jest zdefiniowany zmienną <code>=</code> i kończona strona ma numer nieparzysty, to następna strona ma numer będący kolejną liczbą nieparzystą. Po wywołaniu edytora zmienna <code>-</code> ma wartość: '''ff''' (znacznik końca strony przyjmowany przez programy listujące DLIST i LIST), natomiast zmienna <code>=</code> jest niezdefiniowana. Zmienne <code>-</code> i <code>=</code> mogą być przedefiniowane tak jak inne zmienne, ale definicje te muszą być zawarte w zbiorze EXMINI. W tekstach wprowadzanych z klawiatury znaki \- i \= są rozwijane tak jak inne zmienne generacyjne, ale tylko wtedy, gdy opcja 'number' ma wartość PNU.


=== Opcje edycji ===
=== Opcje edycji ===
Linia 422: Linia 422:
Po wczytaniu zbioru do bufora roboczego wskaźnik dostępu jest ustawiany na pierwszy wiersz bufora. Zmiana wskaźnika dostępu (wiersza bieżącego) następuje po wykonaniu większości zleceń edytora. Zmiana wiersza bieżącego bez jakichkolwiek innych efektów następuje po wprowadzeniu adresu wiersza: <code><wyrażenie_adresowe></code>.
Po wczytaniu zbioru do bufora roboczego wskaźnik dostępu jest ustawiany na pierwszy wiersz bufora. Zmiana wskaźnika dostępu (wiersza bieżącego) następuje po wykonaniu większości zleceń edytora. Zmiana wiersza bieżącego bez jakichkolwiek innych efektów następuje po wprowadzeniu adresu wiersza: <code><wyrażenie_adresowe></code>.


Wprowadzenie zlecenia pustego - tylko znaku '''cr''' (RETURN) przesuwa wskaźnik dostępu na następny wiersz w buforze. Wiersz ten jest wyprowadzany w zależności od ustawienia opcji 'step' :
Wprowadzenie zlecenia pustego - tylko znaku '''cr''' (RETURN) przesuwa wskaźnik dostępu na następny wiersz w buforze. Wiersz ten jest wyprowadzany w zależności od ustawienia opcji 'step':


ST - w następnej linii monitora (zalecane dla monitorów, w których znak '''cr''' nie powoduje przesunięcia kursora na początek linii ekranu)
ST - w następnej linii monitora (zalecane dla monitorów, w których znak '''cr''' nie powoduje przesunięcia kursora na początek linii ekranu)
Linia 523: Linia 523:
* <code>.</code> - wiersz bieżący
* <code>.</code> - wiersz bieżący
* <code>'<litera></code> - wiersz wskazany przez znacznik wiersza (3.4)
* <code>'<litera></code> - wiersz wskazany przez znacznik wiersza (3.4)
* <code>\'\'</code> - wiersz dostępny przed wykonaniem ostatniego zlecenia, które zmieniło położenie wskaźnika dostępu (ciąg pustych zleceń - wprowadzanie tylko znaków '''cr''' - jest tu traktowany jako jedno zlecenie).
* <code>''</code> - wiersz dostępny przed wykonaniem ostatniego zlecenia, które zmieniło położenie wskaźnika dostępu (ciąg pustych zleceń - wprowadzanie tylko znaków '''cr''' - jest tu traktowany jako jedno zlecenie).


<adres_względny>:
<adres_względny>:
Linia 557: Linia 557:
=== Znaczniki wierszy ===
=== Znaczniki wierszy ===


Można zdefiniować 26 znaczników o nazwach A..Z :
Można zdefiniować 26 znaczników o nazwach A..Z:


<wyrażenie_adresowe> M <litera>
<wyrażenie_adresowe> M <litera>
Linia 651: Linia 651:
* <code>Z=</code> - wskazany wiersz jest wyprowadzany w środku i jest objęty dwiema liniami zawierającymi ciągi znaków '''----'''
* <code>Z=</code> - wskazany wiersz jest wyprowadzany w środku i jest objęty dwiema liniami zawierającymi ciągi znaków '''----'''


Przy wykonywaniu zleceń <code>Z<//code>, <code>Z+</code> i <code>Z-</code> wskazany wiersz jest oznaczany znakiem * wyprowadzanym zamiast spacji separującej numer wiersza od jego zawartości.
Przy wykonywaniu zleceń <code>Z</code>, <code>Z+</code> i <code>Z-</code> wskazany wiersz jest oznaczany znakiem * wyprowadzanym zamiast spacji separującej numer wiersza od jego zawartości.


<code>#</code> - listowanie z numeracją wierszy
<code>#</code> - listowanie z numeracją wierszy
Linia 659: Linia 659:
=== Wyprowadzanie wierszy instrukcją globalną ===
=== Wyprowadzanie wierszy instrukcją globalną ===


Składnia zlecenia: <code>[<opis_obszaru>] G[^]/<wzorzec><//code>
Składnia zlecenia: <code>[<opis_obszaru>] G[^]/<wzorzec></code>


Znaczenie: wszystkie wiersze wskazanego obszaru zgodne z podanym wzorcem (lub niezgodne - jeżeli jest podany parametr ^) będą wyprowadzone na monitor. Pusty wzorzec oznacza przyjęcie wzorca użytego w ostatnim zleceniu przeszukiwania bufora. Wskazany obszar musi zawierać więcej niż jeden wiersz. Jeżeli opis obszaru nie zostanie podany, przeszukany zostanie cały bufor. Przy wyprowadzaniu działają opcje 'listcontrol', 'number', 'lenghtline' i 'linecount'(4.2). Wierszem bieżącym po wykonaniu zlecenia jest ostatni wyprowadzony wiersz.
Znaczenie: wszystkie wiersze wskazanego obszaru zgodne z podanym wzorcem (lub niezgodne - jeżeli jest podany parametr ^) będą wyprowadzone na monitor. Pusty wzorzec oznacza przyjęcie wzorca użytego w ostatnim zleceniu przeszukiwania bufora. Wskazany obszar musi zawierać więcej niż jeden wiersz. Jeżeli opis obszaru nie zostanie podany, przeszukany zostanie cały bufor. Przy wyprowadzaniu działają opcje 'listcontrol', 'number', 'lenghtline' i 'linecount'(4.2). Wierszem bieżącym po wykonaniu zlecenia jest ostatni wyprowadzony wiersz.
Linia 684: Linia 684:
* <code>I</code> - wiersze są wprowadzane przed wierszem wskazanym przez wyrażenie adresowe. Wierszem bieżącym po wykonaniu zlecenia jest wiersz wskazany wyrażeniem adresowym.
* <code>I</code> - wiersze są wprowadzane przed wierszem wskazanym przez wyrażenie adresowe. Wierszem bieżącym po wykonaniu zlecenia jest wiersz wskazany wyrażeniem adresowym.


Dołączenie jednego wiersza realizują instrukcje A I w postaci skróconej :
Dołączenie jednego wiersza realizują instrukcje A I w postaci skróconej:


[A]lf<łańcuch> - wiersz zawierający łańcuch jest dołączany za wierszem wskazanym (znak A nie ma żadnego znaczenia i może być pominięty) Ilf<łańcuch> - wiersz zawierający wskazany łańcuch jest wstawiany przed wierszem wskazanym
[A]lf<łańcuch> - wiersz zawierający łańcuch jest dołączany za wierszem wskazanym (znak A nie ma żadnego znaczenia i może być pominięty) Ilf<łańcuch> - wiersz zawierający wskazany łańcuch jest wstawiany przed wierszem wskazanym
Linia 778: Linia 778:
* ostatni wstawiony łańcuch
* ostatni wstawiony łańcuch


<instrukcja_S> :
<instrukcja_S>:


* & - równoważne S/b/d (ponowne wykonanie ostatniego zlecenia podstawienia)
* & - równoważne S/b/d (ponowne wykonanie ostatniego zlecenia podstawienia)
Linia 789: Linia 789:
Schemat podstawienia i instrukcje listujące są takie same jak dla pełnej instrukcji podstawienia (6.1)
Schemat podstawienia i instrukcje listujące są takie same jak dla pełnej instrukcji podstawienia (6.1)


Ostatnio użyte wzorce i łańcuchy wymienione wyżej oraz łańcuch wskazywany przez symbol @ są wyświetlane na monitorze bezparametrowym zleceniem S. W pierwszym wierszu są wyprowadzane ostatnio użyte wzorce w postaci : /a/ S /b/d/ (a, b i d oznaczają wzorce jw.). W następnych wierszach są wyprowadzane łańcuchy wskazywane symbolami _~, @ i % używanymi we wzorcach.
Ostatnio użyte wzorce i łańcuchy wymienione wyżej oraz łańcuch wskazywany przez symbol @ są wyświetlane na monitorze bezparametrowym zleceniem S. W pierwszym wierszu są wyprowadzane ostatnio użyte wzorce w postaci: /a/ S /b/d/ (a, b i d oznaczają wzorce jw.). W następnych wierszach są wyprowadzane łańcuchy wskazywane symbolami _~, @ i % używanymi we wzorcach.


=== Bezpośrednie poprawianie wierszy ===
=== Bezpośrednie poprawianie wierszy ===
Linia 918: Linia 918:
  E: <numer_bufora> <tytuł_zbioru> <liczba_wierszy_w_buforze>
  E: <numer_bufora> <tytuł_zbioru> <liczba_wierszy_w_buforze>


lub pomocniczym :
lub pomocniczym:


  E: <nazwa_bufora> <liczba_wierszy_w_buforze>
  E: <nazwa_bufora> <liczba_wierszy_w_buforze>
Linia 945: Linia 945:
* ! - pozwolenie na zapisanie zawartości bufora do zbioru już istniejącego (wymagane tylko wtedy, gdy jest podany tytuł zbioru)
* ! - pozwolenie na zapisanie zawartości bufora do zbioru już istniejącego (wymagane tylko wtedy, gdy jest podany tytuł zbioru)


Gdy zostanie podany tytuł zbioru już istniejącego, wymagane jest podanie jednego z parametrów ! lub >. Inaczej zostanie wyprowadzony komunikat :
Gdy zostanie podany tytuł zbioru już istniejącego, wymagane jest podanie jednego z parametrów ! lub >. Inaczej zostanie wyprowadzony komunikat:


  FILE ALREADY EXIST: <tytuł_zbioru> ( !, > OR CR ) ?
  FILE ALREADY EXIST: <tytuł_zbioru> ( !, > OR CR ) ?
Linia 1008: Linia 1008:
= Alfabetyczny spis instrukcji edytora EXM =
= Alfabetyczny spis instrukcji edytora EXM =


* A - dołączanie wierszy za wierszem wskazanym (5.2)
* A - dołączanie wierszy za wierszem wskazanym
* C - zmiana wierszy na nowe (5.3)
* C - zmiana wierszy na nowe
* CA - kopiowanie wierszy za wskazany (7.1)
* CA - kopiowanie wierszy za wskazany
* CI - kopiowanie wierszy przed wskazany (7.1)
* CI - kopiowanie wierszy przed wskazany
* CL - usunięcie znaków kontrolnych (6.4)
* CL - usunięcie znaków kontrolnych
* COM - komentarz (11.3)
* COM - komentarz
* D - usunięcie wierszy (5.1)
* D - usunięcie wierszy
* i wstawienie ich do bufora pomocniczego (7.2)
* i wstawienie ich do bufora pomocniczego
* E - poprawianie innego bufora (8.2)
* E - poprawianie innego bufora
* F - nazwa bufora roboczego (8.3)
* F - nazwa bufora roboczego
* FA - opis buforów roboczych (8.4)
* FA - opis buforów roboczych
* G - instrukcja globalna (10.)
* G - instrukcja globalna
* I - wstawienie wierszy przed wierszem wskazanym (5.2)
* I - wstawienie wierszy przed wierszem wskazanym
* INT - zmiana strumienia zleceń (11.1)
* INT - zmiana strumienia zleceń  
* J - połączenie wierszy (6.6)
* J - połączenie wierszy
* L - listowanie ze znakami kontrolnymi (4.2)
* L - listowanie ze znakami kontrolnymi
* LU - zamiana liter małych na duże (6.5)
* LU - zamiana liter małych na duże
* M - definiowanie znacznika wiersza (3.4)
* M - definiowanie znacznika wiersza
* MA - przenoszenie wierszy za wiersz wskazany (7.1)
* MA - przenoszenie wierszy za wiersz wskazany
* MI - przenoszenie wierszy przed wiersz wskazany (7.1)
* MI - przenoszenie wierszy przed wiersz wskazany
* MES - komentarz wyprowadzany na monitor (11.3)
* MES - komentarz wyprowadzany na monitor
* N - edycja nowego zbioru (8.1)
* N - edycja nowego zbioru
* O - bezpośrednie poprawianie wierszy (6.3)
* O - bezpośrednie poprawianie wierszy
* P - listowanie bez znaków kontrolnych (4.2)
* P - listowanie bez znaków kontrolnych
* PA - kopiowanie bufora za wiersz wskazany (7.3)
* PA - kopiowanie bufora za wiersz wskazany
* PI - kopiowanie bufora przed wiersz wskazany (7.3)
* PI - kopiowanie bufora przed wiersz wskazany
* Q - usunięcie edytora (1.2)
* Q - usunięcie edytora
* RA - wczytanie zbioru za wierszem wskazanym (5.4)
* RA - wczytanie zbioru za wierszem wskazanym
* RI - wczytanie zbioru przed wierszem wskazanym (5.4)
* RI - wczytanie zbioru przed wierszem wskazanym
* S - zamiana łańcuchów (6.1)
* S - zamiana łańcuchów
* SET - ustawienie opcji (2.3)
* SET - ustawienie opcji
* U - cofnięcie zmiany (2.5)
* U - cofnięcie zmiany
* UL - zamiana liter dużych na małe (6.5)
* UL - zamiana liter dużych na małe
* W - wyprowadzenie bufora do zbioru (9)
* W - wyprowadzenie bufora do zbioru
* WQ - wyprowadzenie bufora do zbioru i usunięcie (9)
* WQ - wyprowadzenie bufora do zbioru i usunięcie
* Y - kopiowanie obszaru do bufora pomocniczego (7.2)
* Y - kopiowanie obszaru do bufora pomocniczego
* Z - listowanie 7 wierszy (4.3)
* Z - listowanie 7 wierszy
* & - powtórzenie zlecenia podstawienia (6.2)
* & - powtórzenie zlecenia podstawienia
* @ - powtórzenie podstawienia (6.2)
* @ - powtórzenie podstawienia
* % - podstawienie odwrotne (6.2)
* % - podstawienie odwrotne
* ~ - zamiana łańcucha szukanego (6.2)
* ~ - zamiana łańcucha szukanego
* " - bufory pomocnicze (7.2)
* " - bufory pomocnicze
* * - bufor zleceń (11.2)
* * - bufor zleceń
* ' - znaczniki wierszy (3.4)
* ' - znaczniki wierszy
* # - listowanie z numeracją wierszy (4.2)
* # - listowanie z numeracją wierszy
* = - definicja zmiennej generacyjnej (2.2)
* = - definicja zmiennej generacyjnej
* \ - listowanie zmiennych generacyjnych (2.2)
* \ - listowanie zmiennych generacyjnych


= Standardowe definicje wyrażeń regularnych =
= Standardowe definicje wyrażeń regularnych =
Linia 1068: Linia 1068:
* =N\(\D\Y - liczba poprzedzona znakiem nie będącym literą ani znakiem podkreślenia
* =N\(\D\Y - liczba poprzedzona znakiem nie będącym literą ani znakiem podkreślenia
* =R.\X - pozostała część wiersza
* =R.\X - pozostała część wiersza
* =M[a-zA-Z0-9_]*\)-pozostała część nazwy
* =M[a-zA-Z0-9_]*\) - pozostała część nazwy
* =Z\([a-zA-Z0-9_]+\)-dowolna nazwa
* =Z\([a-zA-Z0-9_]+\) - dowolna nazwa
* =W[^ht lf]*> - pozostała część słowa
* =W[^ht lf]*> - pozostała część słowa
* =S<[^ht lf]+> - dowolne niepuste słowo
* =S<[^ht lf]+> - dowolne niepuste słowo
Linia 1082: Linia 1082:
  =a\<\[aA]\[^ht lf]\*\>
  =a\<\[aA]\[^ht lf]\*\>


a zbiór NNAMES w postaci :
a zbiór NNAMES w postaci:


  =a\(\[aA]\[a-zA-Z0-9_]\*\)
  =a\(\[aA]\[a-zA-Z0-9_]\*\)

Menu nawigacyjne