Subject: Re: ����������� ��� ������������
From: Sergei M. Abramov (at home) (abram@botik.ru)
Date: Sat Feb 10 2001 - 15:57:27 MSK
���� ������, ����!
���� ������ ����� ��� "�� ������-5", �� � �� ������.
������, ������� ���� �������:
>������ ������� � ���������. ���� �� � ������-5 ������ ����������
>����������� ������������ �������, � ������ - ������ ���������, ������
>�������� �������, ������ BELL � ������? ���� �� �����-������ ������ ���
*******************************
>\n, \t, \r, \g � ������ ����������� ����� C...
**********************************************
>����������, ���� ���������� ��� ������� ��������. ������ - ���� �� �����
>������ � ��� ������ ������-5, ������� �������� �� ����� (������ ��� ������
>� ������� ������������).
> .... ������ - ����� ������ ��� �� ���� ����� ������,
>���� �� ��� ��� ��������� ;-) (��������������� ����, ���� �� ����� ������
*************************
>�� ����� ����).
��� �����-5 �� �����, � � ������������ �� ������ ����:
# 3.4.�������-������
...
# ������-������ ������������� ����� ������ ���� ASCII � ����-
# �������� � ���� ����������� ���� ������ ASCII, ������������ �
# ���������. ��������: 'A' 'a' '7' '$'
# ��� �������, ������������ ������ ASCII �������� ���� ���
# ������, �� ����������� ��������� ����� ASCII, ��� ������� ����-
# ��������� ������ �����������:
#
# ����� ������ (������� ������) HL (LF) '\n'
# �������������� ��������� HT '\t'
# ������������ ��������� VT '\v'
# ������� �� ��� BS '\b'
# ������� ������� CR '\r'
# ������� ������� FF '\f'
# �������� ����� \ '\\'
# �������� ' '\''
# ������� ������� " '\"'
��� ����� ���������� ���������� �����:
# �������������� ����������� ������ ����
...
# ������ ����� � ����� � ����������������� �������
#
# ��������������� ����� ����� ����� ���������� � ����
# 0xZZZ...ZZ
# ��� ZZZ...ZZ - �������� ������������������
# ����������������� ����.
# ��������, 0xFF � 0xff ������������ 255.
# ����������� �����, �������� � ����������� ������� ��������-
# ����� � ��������-����, ����� ������������ � ����
# \xZZ
# ��� ZZ - ��� ����������������� �����, �������� ASCII-��� ������.
> ... ������ - ����� ������ ��� �� ���� ����� ������,
>���� �� ��� ��� ��������� ;-) (��������������� ����, ���� �� ����� ������
>�� ����� ����).
�� ����� ������� ������! ��� ���, ���� �������� ��������� ��� � ������� (5, 6,
����) ������ ������ � �������� ����� � ������ � ������ (� ��������� ��������).
����� ���� ������������ � ���������� ���� ��������. �����������
���������---���� ������ �����������!.
��� ���, �� ����-������ ��� ��������� ���-�� ������ (����������� ��
��������?)... ���!
>������, �� ��� �������� ��������, �������� �� ������ ��� ���� ������
>�������� ������. ��������� � �����, � ������-5 ����������� ��, ���
>�����-�� ����������, ���� �� ��������, ��������������� (��������, ���
>S-���������� ����� ���� ������� �������� ��������, ������� ��� �����
>match'���).
��, �� ������ ��� S, �� � ��� T � E, �� ������ ��������, �� � ������
������������.
��, � ������-2 ��� ������� ������� ���� �������� �������������� �� _�����_. ���
���� ������� (��������) ��� ���:
=1= ���� ������������ ������������� �� ����� (����: �������� ��������� ��������,
�����. � �������, �����, ���������, "������������ ����" � �.�.);
=2= � ���� ���������, ����������� �� ��� ����������� �������������� �������
����� ������������� (��, ����� ���: ����������� / ����������� / ��������
�������������� ���� ������������). � �������� ������� �� ������, �� ���� ����.
>������������ �������������� ����� ��� ����������� (�� ���
>������, ���� ���� ��������), � ��������� ������� � ������� ������
>������������ � ���� ����.
��, �������, ���� ������� ���������� ;-)
�������� ������� ��������� �������: � ����� ������� (� ������� ��� �������
���������) ����� ������� ������������� ����� �������� ���������� �����.
��������, ���� �� ������ �������� ������� <Is-Identifier e.X>, �������
���������, ��� �X ���� �������� ������� ����� (������������ � ����� � ����������
����� �/��� �����) � ������� ���������� True ��� False, �� ����� ��������
������� ����������:
... �1 : �2 �Id e3, <Is-Identifier eId> : True, ...� �����...
���� ���������, � ������ ���� ��� �������� ��� ����� �������:
****************************************************
=1= ������� "����������� �������" (�������� �������)
****************************************************
�� ���� ������� ����������� ������� �� ������� �� ������ ������� ���������, �� �
��������� $fail, ��� $fail -- ����� ��� ���������, � ������� �����������,
��������, ����� ����������� (����):
� : �
������ � ������ ���� �� ����� ������ �������:
-- ������� ��������� ����� ������������ (���������� ����� ��� $fail);
��� ��� (��� �������� ������ ������)
-- ������� "��������" �� ������ ����� ����������� (���� �������) ��� �������
� ������� $fail.
����������� ����� ����� ������� ��������� ������ "?".
��������������� ������:
... �1 : �2 �Id e3, <Is-Identifier? eId>, ...� �����...
��� ����� ������ "������� ����������" (������):
...
<SkipBlanks e0> :: e1,
<Identifier? e1> :: (eId1) e2, /* ������� �������� ���1 */
<SkipBlanks e3> :: e4,
e4 : '+' e5,
<SkipBlanks e5> :: e6,
<Identifier? e6> :: (eId2) e7 /* ������� �������� ���2 */
= (Sum (Name e.Id1) (Name e.Id2)) <Parser e7> ;
****************************************************
=2= ���� ������������ "�����������" ������� ���
������������ �������������� (�������) ��������:
****************************************************
# 6.CLASS: ��������� ��� ������������� ������� ��������
#
# $func? BOX? e.Exp = ;
# $func? CHANNEL? e.Exp = ;
# $func? CHAR? e.Exp = ;
# $func? DIGIT? e.Exp = ;
# $func? FUNC? e.Exp = ;
# $func? INT? e.Exp = ;
# $func? LETTER? e.Exp = ;
# $func? STRING? e.Exp = ;
# $func? TABLE? e.Exp = ;
# $func? VECTOR? e.Exp = ;
# $func? WORD? e.Exp = ;
#
# ��� ������� ������ ��� ��������, ��� e.Exp �������� �����-
# ���, ������������� � ������������� ��������� ��������.
...
�� ����, �� ��� ����� � ����� "������������ �������������". � ������� � �����,
� ������ ���� ������� ��� ���:
****************************************************
=3= � ����� ������� "������" ������� ���
�������������� "��������������".
****************************************************
����, ��� ���� �� ������:
...������������-1... (��������: s1 : 'A')
�
...������������-2... (��������: s1 : 'B')
�� �� ������ �������� �������� "�", "���" � "��" ��� ���������������. � ������
���� ��� ����� �������.
� ������:
*****************
"�" == ����������
*****************
��� ������ "�������":
...�����...,
...������������-1...,
...������������-2...,
...�����...
��������:
...�����...
s1 : 'A',
s1 : '�',
...�����...
********************
"���" == �����������
********************
��� ��� ����� (������� � ������-5 ��� ������--���� ������� �������.�������.
���� � ������-6 � ����--��� �����):
...�����...,
\{ ...������������-1...;
...������������-2...;
\},
...�����...
��������:
...�����...
\{ s1 : 'A';
s1 : '�';
\},
...�����...
********************
"��" == ����������
********************
��� ����� ����������� (#) ��������� "���������" � ������-����:
...�����...,
# ...������������-1...,
...�����...
��������:
...�����...
#<LETTER? s1>,
...�����...
���
...�����...
# \{ s1 : 'A', ;\}
...�����...
>��� �� �����, �� ��� �� ���-������ �� ��������
>���������� ����� ������� �� ���� ����...
���� ��� ����� ��� ������: ������ ������������� ���� �� ����� >>>� ��� �����<<<
������, ��� ����������� �������� ������ ��������� ����� ������ "�������������"
�� ����� ������ � ���������� �� � "����� ������" �������� � ���� �������
��������.
�����
������
�.�.
=1= ��� ������������� "����� ��������������" �� ��������� �� ������� �� �������.
=2= ������ ������������� ���� �� �����... �� ���� �� �� ���������? (��� ���...
������ ������...)
This archive was generated by hypermail 2b25 : Mon Oct 25 2004 - 21:24:58 MSD