�����ƣ�
- �� parse_command() - �����Ը�����ʽ(pattern)�����һ���ַ���
��
- �� int parse_command( string command, object env|object *oblist, string
pattern, mixed arg, ... );
�� ���� parse_command( �ַ��� command, ��� env|��� *oblist, �ַ��� pattern,
��� arg, ... );
��
- �� parse_command() ��ͨ���������ַ����� sscanf(3) �ġ�����������������һ����ʽ��һ��Ŀ�IJ���֮�������ϵ�
sscanf(3)�����Դ������������IJ���(refence)������ķ�ʽ�����Ψһ���ⲿ����(efun)
sscanf(3)����ˣ�parse_command() ������ֵ�������IJ����ϡ�
�� �� 'command' ��Գɹ���parse_command() �᷵�� 1��
�� ���� 'env' ���� 'oblist' ����һ������ͻ���һ��������顣������ǵ�һ����Ļ��������������Ӵ������
deep_inventory ��ʽ���Զ�����һ��������飬������������������ǵ�Ч�ģ�
��
- ���� parse_command(cmd, environment(), pattern,
arg)
��
- ���� parse_command( cmd, ({ environment() })
+ deep_inventory(environment()), pattern, arg)
�� ���
- ���� 'word'������������������ �ر�������(text)
���� [word]������������������ ��ʡ�Ե�����
���� /���������������������������� ѡ���ԵļǺ�(marker)
���� %o�������������������������� ��һ��Ŀ(item), ���
���� %l�������������������������� ����(living object)
���� %s�������������������������� �����
���� %w�������������������������� �κε���(word)
���� %p�������������������������� ����(list) (��ϵ��)
���� %i�������������������������� �κ���Ŀ
���� %d�������������������������� ���� 0- ���� tx(0-99)
�� ��ͬ %_ �ķ��������ǣ�
- ���� %o���������� ����һ�����
���� %s���������� ���ص��ֵ��ַ���
���� %w���������� ���ص�һ���ֵ��ַ���
���� %p���������� ������һ�����е��ַ����е��������һ���ձ���
- ������ ���أ�
- �������� ����ǿձ�����һ���ַ���
�������� ��������飺array[0] ������Եĵ���
- ������ [0] = (int) +(wanted) -(order) 0(all)
������ [1..n] (object) ���ָ��(objectpointers)
- ������ [0] = (int) +(wanted) -(order) 0(all)
������ [1..n] (object) ���ָ��
- �������� ���������
���� %i �� %l �ķ���ֵҲ����ӵġ����Ƿ���һ�������ִ�ͷ�����������п������֮�����ɵ����顣һ�������� %i��%l ��Ե��ַ����������� 'three red roses'������֮��������������Ա���ԣ�
���� ��� numeral>0 �� tree, four, five �Ȼᱻ��ԣ�
���� ��� numeral<0 �� second, twentyfirst �Ȼᱻ��ԣ�
���� ��� numeral==0 �� 'all' ����һ��ĸ�����ʽ�� 'apples'�ᱻ��ԡ�
��
- �� ����ⲿ����(efun)���ܸ�����ֵ���������⡣����� 'all apples' ����
'second apple'������������ĵġ�%i ���᷵�����������ڿ�����Ե�����������������������
'second' �ڸ������ݵ���˼�����ң�������һ���������һ�����Ե�(explicit)�������ʱ��������������ĵݻ����ݽ��ᱻ��Ѱ����Ҳ���������������ʵ���Ͽɿ���������У��ĸ���
'second' �������Ƿ���֮��������еڶ��������
��
- �� "%s %w %i" ��Щ���͵���ʽ���ܲ���Ԥ�ڵ����á�%w ���ܻ�ɹ��������������
%s �IJ������ܻ��ǿյġ�
��
- �� 'word' �� [word] �����͵���ʽ�У�'word' ���ܰ����հס��������ǵ�һ���֡�������Ϊ��ʽ����
" " (�հ�) ������������һ����ʽ��Ԫ(element)���ܺ��пհס�
�� �Կհ�����������һ��Ӱ���ǣ������ָ�һ����ʽ�IJ���(piece)�������Կհ������粻����
" 'word'/%i " ������ " 'word' / %i"��
��
- ���� if (parse_command("spray car",environment(this_player()),
- ������ " 'spray' / 'paint' [paint] %i ",items))
������ {
���� /*
���� ��������ʽ����ԵĻ����� items �᷵���� 'destargs'
���� ֮����ͬ���� %i �����顣
���� */
������ }
- �� Ϊ��ʹ����ⲿ�������ã������������� mudlib ��֧Ԯ������Ҫһ�麯���������жϻ���(sensible
manner)�ڽ�������ǰ���ã���ȡ�������Ϣ��
�� �����ڵİ汾�У���ʹ���� LPC �����һ��� id() lfun ���ҵ�һ���ض��ַ�����ָ����������������������dz�����ָ��ʱ�����������������ǧ�����ã�����ʮ��û��Ч�ʡ�
�� �µİ汾���������ṩ������ 'names' ���е� LPC �����
��
- ���� 1 - һ�㵥һ�����֣�
���� 2 - ������ʽ�����֣�
���� 3 - ���ϵ�������ݴʡ�
��
- ���� 1 - string *parse_command_id_list();
���� 2 - string *parse_command_plural_id_list();
���� 3 - string *parse_command_adjectiv_id_list();
�� The third is very nice to have because it makes constructs like
������ע���������ԭ�ġ���
���� ������Щ����Ӧ�ô�������������⣬������������ڻ����� mudlib ����ڣ�����Ҳ��һЩ������ĸ���(master object) ����Ҫ�ġ���Щ�䲻�Ǿ��Ա���ģ���������ĸ�������ⲿ���������������
�� �����ϣ���Щĸ����� lfuns ��Ҫ�趨��ÿ������õ�֮���ƴ��е�Ԥ��ֵ��
�� ��Щ�����ϵ����ֿ�Ӧ�����κ����е�����ϡ�����Щ������ǰ��������Щ
lfuns ��һ���ģ�
��
- ���� string *parse_command_id_list()
- ������ - һ��᷵��: ({ "one", "thing" })
- ������ - һ��᷵��: ({ "ones", "things", "them"
})
- ������ - һ��᷵��: ({ "iffish" })
- ���� string *parse_command_prepos_list()
- ������ - һ��᷵��: ({ "in", "on", "under" })
- ������ - һ��᷵��: "all"
- �� [email protected]�� 97.Jul.26�� (printed 3/16/95)