%              Copyright (C) 1997  彣 󹩳 ǽ󹩳ز
%                                                      ѹ
%                                                     ʰ 
%                                                     ¼ 
%                                                     ¼ 
%
:- sax_top_node_category(_,ˡΧʸ/3).

%% ˡΧʸ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ˡΧʸ(Mi, Kf, Im) -->
	(TagMi, TagKf, TagIm),
	((SymMi, SymKf, SymIm); []),
	((³(Mi1, Kf1, Im1),(Mi2, Kf2, Im2)); []),
	(ˡΧʸ(Mi3, Kf3, Im3); % Х
	 ˡΧʸ(Mi3, Kf3, Im3);
	 ˡΧʸ(Mi3, Kf3, Im3);
	 ˡΧʸ(Mi3, Kf3, Im3);
	 ˡΧʸ(Mi3, Kf3, Im3);
	 ˡΧʸ(Mi3, Kf3, Im3);
	 ˡΧʸ(Mi3, Kf3, Im3);
	 ˡΧʸ(Mi3, Kf3, Im3);
	 ˡΧʸ(Mi3, Kf3, Im3)),
	{mk_sem(ˡΧʸ, Im3, _Law),
	 f-struct_print(TagIm, Im3),
	 append([], Mi3, Mi)}.

ˡΧʸ(Mi, Kf, Im) -->
	(Mi1, Kf1, Im1),
        (Mi2, Kf2, Im2),
        {mk_sem(ˡΧʸ, Im1, Im),
         append([], Mi1, Mi)}.

%% ˡΧʸ(վ, ׷ + վ) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ˡΧʸ(Mi, Kf, Im) -->
	վ(Mi1, Kf1, Im1),
	(((Mi0, Kf0, Im0),³(Mi2, Kf2, Im2),(Mi0, Kf0, Im0));
	 (Mi3, Kf3, Im3)),
	{mk_sem(ˡΧʸ, Im1, Im),
	 append([], Mi1, Mi)}.
ˡΧʸ(Mi, Kf, Im) -->
        ׷(Mi1, Kf1, Im1), ((Mi0, Kf0, Im0); []),
        վ(Mi2, Kf2, Im2),
        (Mi3, Kf3, Im3),
        {mk_sem(ˡΧʸ, Im1, Im2, Im),
	 append(Mi1, Mi2, Mi)}.

%% ˡΧʸ(Χо + ) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ˡΧʸ(Mi, Kf, Im) -->
        Χо(Mi1, Kf1, Im1), ((Mi0, Kf0, Im0); []),
        (Mi2, Kf2, Im2),
        (Mi3, Kf3, Im3),
        {mk_sem(ˡΧʸ, Im1, Im2, Im),
         append(Mi1, Mi2, Mi)}.

%% ˡΧʸ(׷ + Χо + ) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ˡΧʸ(Mi, Kf, Im) -->
        ׷(Mi1, Kf1, Im1),     ((Mi0, Kf0, Im0); []),
        Χо(Mi2, Kf2, Im2), ((Mi0, Kf0, Im0); []),
        (Mi3, Kf3, Im3),
        (Mi4, Kf4, Im4),
        {mk_sem(ˡΧʸ, Im1, Im2, Im3, Im),
         append(Mi1, Mi2, MiList),
         append(MiList, Mi3, Mi)}.

%% ˡΧʸ(Χо + ׷ + ) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ˡΧʸ(Mi, Kf, Im) -->
        Χо(Mi1, Kf1, Im1),((Mi0, Kf0, Im0); []),
        ׷(Mi2, Kf2, Im2),    ((Mi0, Kf0, Im0); []),
        (Mi3, Kf3, Im3),
        (Mi4, Kf4, Im4),
        {mk_sem(ˡΧʸ, Im1, Im2, Im3, Im),
         append(Mi1, Mi2, MiList),
         append(MiList, Mi3, Mi)}.

%% ˡΧʸ(׷ + ) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ˡΧʸ(Mi, Kf, Im) -->
        ׷(Mi1, Kf1, Im1), ((Mi0, Kf0, Im0); []),
        (Mi2, Kf2, Im2),
        (Mi3, Kf3, Im3),
        {mk_sem(ˡΧʸ, Im1, Im2, Im),
         append(Mi1, Mi2, Mi)}.

%% ˡΧʸ(׷ + ׷ + Χо + ) %%%%%%%%%%%%%%%%%%%%%%%%
ˡΧʸ(Mi, Kf, Im) -->
        ׷(Mi1, Kf1, Im1),     ((Mi0, Kf0, Im0); []),
	׷(Mi2, Kf2, Im2), ((Mi0, Kf0, Im0); []),
        Χо(Mi3, Kf3, Im3), ((Mi0, Kf0, Im0); []),
        (Mi4, Kf4, Im4),
        (Mi5, Kf5, Im5),
        {mk_sem(ˡΧʸ, Im1, Im2, Im3, Im4, Im),
         append(Mi1, Mi2, MiList1),
	 append(MiList1, Mi3, MiList2),
         append(MiList2, Mi4, Mi)}.

%% ˡΧʸ( + ˡΧʸ) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ˡΧʸ(Mi, Kf, Im) -->
	(Mi1, Kf1, Im1), ((Mi0, Kf0, Im0); []),
	(ˡΧʸ(Mi2, Kf2, Im2);
	 ˡΧʸ(Mi2, Kf2, Im2);
	 ˡΧʸ(Mi2, Kf2, Im2);
	 ˡΧʸ(Mi2, Kf2, Im2);
	 ˡΧʸ(Mi2, Kf2, Im2);
	 ˡΧʸ(Mi2, Kf2, Im2);
	 ˡΧʸ(Mi2, Kf2, Im2);
	 ˡΧʸ(Mi2, Kf2, Im2)),
	{mk_sem(ˡΧʸ, Im1, Im2, Im),
	 append(Mi1, Mi2, Mi)}.
%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
(Mi, Kf, Im) -->
	̤(Mi, Kf1, Im1),
	{mk_sem(, Im1, Im)}.

%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
(Mi, Kf, Im) -->
        󵭽(Mi1, Kf1, Im1),
        (ʽ(Mi2, Kf2, Im2);
         (Mi2, Kf2, Im2)),
        {mk_sem(, Im1, Im2, Im),
         append(Mi1, [Mi2], Mi)}.

%% 󵭽 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
󵭽(Mi, Kf, Im) -->
	θ(Mi1, Kf1, Im1),
	{mk_sem(󵭽, Im1, Im),
         append([], Mi1, Mi)}.

%% ׷ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
׷(Mi, Kf, Im) -->
        ׷ﵭ(Mi1, Kf1, Im1),
        {mk_sem(׷, Im1, Im),
         append([], Mi1, Mi)}.
׷(Mi, Kf, Im) -->
        ׷ﵭ(Mi1, Kf1, Im1),
        (ʽ(Mi2, Kf2, Im2);
         (Mi2, Kf2, Im2)),
        {mk_sem(׷, Im1, Im2, Im),
         append(Mi1, [Mi2], Mi)}.

%% ׷ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
׷(Mi, Kf, Im) -->
	׷ﵭ(Mi1, Kf1, Im1),
        {mk_sem(׷, Im1, Im),
         append([], Mi1, Mi)}.
׷(Mi, Kf, Im) -->
	׷ﵭ(Mi1, Kf1, Im1),
        (ʽ(Mi2, Kf2, Im2);
         (Mi2, Kf2, Im2)),
        {mk_sem(׷, Im1, Im2, Im),
         append(Mi1, [Mi2], Mi)}.

%% ׷ﵭ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
׷ﵭ(Mi, Kf, Im) -->
	θ(Mi1, Kf1, Im1),
	{mk_sem(׷ﵭ, Im1, Im),
         append([], Mi1, Mi)}.
׷ﵭ(Mi, Kf, Im) -->
	׷ﵭ(Mi1, Kf1, Im1),
	³(Mi2, Kf2, Mi2),
	((Mi3, Kf3, Im3); []),	
	׷ﵭ(Mi4, Kf4, Im4),
        {mk_sem(׷ﵭ, Im1, Im2, Im2, Im),
	 append(Mi1, [Mi2], MiList),
	 append(MiList, Mi4, Mi)}.

%% Χо %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Χо(Mi, Kf, Im) -->
	θ(Mi1, Kf1, Im1),
	(Mi2, Kf2, Im2),
	{mk_sem(Χо, Im1, Im2, Im),
	 append(Mi1, [Mi2], Mi)}.

%% վ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
վ(Mi, Kf, Im) -->
	θ(Mi1, Kf1, Im1),
	{mk_sem(վ, Im1, Im),
	 append([], Mi1, Mi)}.

%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
(Mi, Kf, Im) -->
	׷(Mi1, Kf1, Im1),
	((Mi2, Kf2, Im2); []),
        (Mi3, Kf3, Im3),
        {mk_sem(, Im1, Im3, Im),
	 append(Mi1, Mi3, Mi)}.
(Mi, Kf, Im) -->
        Ѹ(Mi1, Kf1, Im1),
        {mk_sem(, Im1, Im),
	 append([], Mi1, Mi)}.

%% ֻ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ֻ(Mi, Kf, Im) -->
	θ(Mi1, Kf1, Im1),
	{mk_sem(ֻ磳, Im1, Im),
	 append([], Mi1, Mi)}.
ֻ(Mi, Kf, Im) -->
	θ(Mi1, Kf1, Im1),
	(ʽ(Mi2, Kf2, Im2);
         (Mi2, Kf2, Im2)),
	{mk_sem(ֻ磲, Im1, Im2, Im),
	 append(Mi1, [Mi2], Mi)}.
ֻ(Mi, Kf, Im) -->
	Ѹ(Mi1, Kf1, Im1),
	((Mi2, Kf2, Im2);
         (Mi2, Kf2, Im2)),
	{mk_sem(ֻ磱, Im1, Im2, Im),
	 append(Mi1, [Mi2], Mi)}.

%% θ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
θ(Mi, Kf, Im) -->
	θ(Mi1, Kf1, Im1),
	̾³(Mi2, Kf2, Im2),
	{mk_sem(θ, Im1, Im2, Im),
	 append(Mi1, [Mi2], Mi)}.

%% Ѹ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Ѹ(Mi, Kf, Im) -->
	Ѹ(Mi1, Kf1, Im1),
	Ҹ³(Mi2, Kf2, Im2),
	{mk_sem(Ѹ磲, Im1, Im2, Im),
	 append(Mi1, [Mi2], Mi)}.
Ѹ(Mi, Kf, Im) -->
	Ѹ(Mi1, Kf1, Im1),
	{mk_sem(Ѹ磲, Kf1, Im1, Im),
	 append([], Mi1, Mi)}.
Ѹ(Mi, Kf, Im) -->
	(Ľ(Mi1, Kf1, Im1);
	 ؼ̾(Mi1, Kf1, Im1)),
	{mk_sem(Ѹ磱, Im1, Im),
	 append([], [Mi1], Mi)}.

%% Ϣν %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Ϣν(Mi, Kf, Im) -->
	Ѹ(Mi1, Ϣη, Im1),
	{mk_sem(Ϣν磲, Im1, Im),
	 append([], Mi1, Mi)}.
Ϣν(Mi, Kf, Im) -->
	Ϣλ(Mi1, Kf1, Im1),
	{mk_sem(Ϣν磱, Im1, Im),
	 append([], [Mi1], Mi)}.

% θ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
θ(Mi, Kf, Im) -->
	θ(Mi1, Kf1, Im1),
	((Mi2, Kf2, Im2); []),
	θ(Mi3, Kf3, Im3),
	{mk_sem(θ磵, Im1, Im3, Im),
	 append(Mi1, Mi3, Mi)}.
θ(Mi, Kf, Im) -->
	θ(Mi1, Kf1, Im1),
	((Mi2, Kf2, Im2); []),
	(³(Mi3, Kf3, Im3);
	 ̾³(Mi3, Kf3, Im3)),
	((Mi4, Kf4, Im4); []),
	θ(Mi5, Kf5, Im5),
	{mk_sem(θ磴, Im1, Im3, Im5, Im),
 	 append(Mi1, [Mi3], MiList),
	 append(MiList, Mi5, Mi)}.
θ(Mi, Kf, Im) -->
	θ(Mi1, Kf1, Im1),
	θ(Mi2, Kf2, Im2),
	{mk_sem(θ磳, Im1, Im2, Im),
 	 append(Mi1, Mi2, Mi)}.
θ(Mi, Kf, Im) -->
	Ϣν(Mi1, Kf1, Im1),
	θ(Mi2, Kf2, Im2),
	{mk_sem(θ磲, Im1, Im2, Im),
	 append(Mi1, Mi2, Mi)}.
θ(Mi, Kf, Im) -->
	(̾(Mi1, Kf1, Im1);
	 ̾(Mi1, Kf1, Im1);
	 ͭ̾(Mi1, Kf1, Im1);
	 (Mi1, Kf1, Im1);
	 ̾(Mi1, Kf1, Im1);
	 Ū̾(Mi1, Kf1, Im1);
	 ̾(Mi1, Kf1, Im1);
	 ؼ̾(Mi1, Kf1, Im1)),
	 {mk_sem(θ磱, Im1, Im),
	  append([], [Mi1], Mi)}.

% Ѹ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Ѹ(Mi, Kf, Im) -->
	ư(Mi1, Kf1, Im1),
        ³(Mi2, Kf2, Im2),
	((Mi3, Kf3, Im3); []),
        ư(Mi4, Kf, Im4),
        {mk_sem(Ѹ磶, Im1, Im2, Im4, Im),
	 append([Mi1], [Mi2], MiList),
	 append(MiList, [Mi4], Mi)}.
Ѹ(Mi, Kf, Im) -->
	ֻ(Mi1, Kf1, Im1),
        ((Mi2, Kf2, Im2); []),
        Ѹ(Mi3, Kf, Im3),
        {mk_sem(Ѹ磳, Im1, Im3, Im),
	 append(Mi1, Mi3, Mi)}.
Ѹ(Mi, Kf, Im) -->
	Ѹ(Mi1, Kf1, Im1),
	((Mi2, Kf2, Im2); []),
        Ѹ(Mi3, Kf, Im3),
        {mk_sem(Ѹ磵, Im1, Im3, Im),
	 append(Mi1, Mi3, Mi)}.
Ѹ(Mi, Kf, Im) -->
	Ѹ(Mi1, Kf1, Im1),
	ư(Mi2, Kf, Im2),
	{mk_sem(Ѹ磲, Im1, Im2, Im),
	 append(Mi1, [Mi2], Mi)}.
Ѹ(Mi, Kf, Im) -->
	̾(Mi1, Kf1, Im1),
        ³(Mi2, Kf2, Im2),
        ư(Mi3, Kf, Im3),
        {mk_sem(Ѹ磴, Im1, Im2, Im3, Im),
	 append([Mi1], [Mi2], MiList),
	 append(MiList, [Mi3], Mi)}.
Ѹ(Mi, Kf, Im) -->
	(ư(Mi1, Kf, Im1);
	 ƻ(Mi1, Kf, Im1);
	 ư(Mi1, Kf, Im1)),
	{mk_sem(Ѹ磱, Im1, Im),
	 append([], [Mi1], Mi)}.

