version 1.4, 1999/11/20 05:17:31 |
version 1.8, 2000/02/28 14:10:29 |
|
|
%% $OpenXM: OpenXM/src/kan96xx/Doc/xml.sm1,v 1.3 1999/11/11 08:06:44 takayama Exp $ |
%% $OpenXM: OpenXM/src/kan96xx/Doc/xml.sm1,v 1.7 2000/02/28 13:22:27 takayama Exp $ |
%% xml.sm1 XML support for sm1. |
%% xml.sm1 XML support for sm1. |
%% This package requires ox.sm1 |
%% This package requires ox.sm1 |
[(parse) (ox.sm1) pushfile] extension |
[(parse) (ox.sm1) pushfile] extension |
(xml.sm1 : 1999, 11/20 Sat) message |
(xml.sm1 : 1999, 11/20 Sat) message |
%%%%% These should be under /usr/local/OpenXM or OpenXM_HOME |
%%%%% These should be under /usr/local/OpenXM or OpenXM_HOME |
/oxpath.java-support (lib/java-support) def |
/oxpath.java-support (lib/java-support) def |
|
/@@@.xml null def |
|
|
[(getenv) (OpenXM_HOME)] extension |
[(getenv) (OpenXM_HOME)] extension |
tag 0 eq { |
tag 0 eq { |
|
|
[/in-cmo2xml /ob] pushVariables |
[/in-cmo2xml /ob] pushVariables |
[ |
[ |
/ob arg1 def |
/ob arg1 def |
|
@@@.xml tag 0 eq { |
|
xmlconnect |
|
}{ } ifelse |
@@@.xml ob oxpushcmo |
@@@.xml ob oxpushcmo |
|
@@@.xml 1 oxpushcmo |
@@@.xml (CMO2OMXML) oxexec |
@@@.xml (CMO2OMXML) oxexec |
@@@.xml oxpopcmo /arg1 set |
@@@.xml oxpopcmo /arg1 set |
] pop |
] pop |
|
|
[/in-xml_to_cmo /ob] pushVariables |
[/in-xml_to_cmo /ob] pushVariables |
[ |
[ |
/ob arg1 def |
/ob arg1 def |
|
@@@.xml tag 0 eq { |
|
xmlconnect |
|
}{ } ifelse |
@@@.xml ob oxpushcmo |
@@@.xml ob oxpushcmo |
|
@@@.xml 1 oxpushcmo |
@@@.xml (OMXML2CMO) oxexec |
@@@.xml (OMXML2CMO) oxexec |
@@@.xml oxpopcmo /arg1 set |
@@@.xml oxpopcmo /arg1 set |
] pop |
] pop |
|
|
|
|
[(cmoTreeToPostfix) |
[(cmoTreeToPostfix) |
[(tree-obj cmoTreeToPostfix postfix-str) |
[(tree-obj cmoTreeToPostfix postfix-str) |
$Example 1: [(plus) (Basic) [(123).. (345)..]] [(class) (tree)] dc /ff set$ |
$Example 1: [(plus) (basic) [(123).. (345)..]] [(class) (tree)] dc /ff set$ |
$ ff cmoTreeToPostfix /gg set $ |
$ ff cmoTreeToPostfix /gg set $ |
$ [(parse) gg] extension pop :: $ |
$ [(parse) gg] extension pop :: $ |
$Example 2: ( (x-T-2)^5). /p set $ |
$Example 2: ( (x-T-2)^5). /p set $ |
|
|
arg1 |
arg1 |
} def |
} def |
|
|
/plus_Basic { |
/basic_plus { |
/arg1 set |
/arg1 set |
[/in-plus_Basic /s /a /n /i] pushVariables |
[/in-basic_plus /s /a /n /i] pushVariables |
[ |
[ |
/a arg1 def |
/a arg1 def |
/s a 0 get def |
/s a 0 get def |
|
|
popVariables |
popVariables |
arg1 |
arg1 |
} def |
} def |
/times_Basic { |
/basic_times { |
/arg1 set |
/arg1 set |
[/in-times_Basic /s /a /n /i] pushVariables |
[/in-basic_times /s /a /n /i] pushVariables |
[ |
[ |
/a arg1 def |
/a arg1 def |
/s a 0 get def |
/s a 0 get def |
|
|
popVariables |
popVariables |
arg1 |
arg1 |
} def |
} def |
/power_Basic { |
/basic_power { |
/arg1 set |
/arg1 set |
[/in-power_Basic /a ] pushVariables |
[/in-basic_power /a ] pushVariables |
[ |
[ |
/a arg1 def |
/a arg1 def |
a 0 get a 1 get power /arg1 set |
a 0 get a 1 get power /arg1 set |
|
|
{ |
{ |
in (array) dc /in set |
in (array) dc /in set |
/dic in 1 get def |
/dic in 1 get def |
|
/dic dic tolower def |
%% concatenate the dictionary name to the function name. |
%% concatenate the dictionary name to the function name. |
/ans in 2 get { cmoTreeToPrefix } map bracketForm def |
/ans in 2 get { cmoTreeToPrefix } map bracketForm def |
[in 0 get (_) dic ans ] cat /ans set |
[dic (_) in 0 get ans ] cat /ans set |
} ifelse |
} ifelse |
/arg1 ans def |
/arg1 ans def |
] pop |
] pop |
|
|
|
|
[(cmoTreeToPrefix) |
[(cmoTreeToPrefix) |
[(tree-obj cmoTreeToPrefix prefix-str) |
[(tree-obj cmoTreeToPrefix prefix-str) |
$Example 1: [(plus) (Basic) [(123).. (345)..]] [(class) (tree)] dc /ff set$ |
(Dictionary names are translated to lower characters.) |
|
$Example 1: [(plus) (basic) [(123).. (345)..]] [(class) (tree)] dc /ff set$ |
$ ff cmoTreeToPrefix /gg set $ |
$ ff cmoTreeToPrefix /gg set $ |
$Example 2: ( (x-T-2)^5). /p set $ |
$Example 2: ( (x-T-2)^5). /p set $ |
$ p [(class) (recursivePolynomial)] dc xml /ff set $ |
$ p [(class) (recursivePolynomial)] dc xml /ff set $ |
|
|
popVariables |
popVariables |
arg1 |
arg1 |
} def |
} def |
|
|
|
/xml_tree_to_prefix_string { |
|
/arg1 set |
|
[/in-xml_tree_to_prefix_string /sss] pushVariables |
|
[ |
|
/sss arg1 def |
|
sss isString { |
|
}{ |
|
(string xml_tree_to_prefix_string) error |
|
}ifelse |
|
sss xml_to_cmo cmoTreeToPrefix /ans set |
|
/arg1 ans def |
|
] pop |
|
arg1 |
|
} def |
|
|
|
|
|
/OMproxy-testsuits2 { |
|
xmlconnect |
|
1 1 30 { |
|
/i set |
|
[( (x-T-2)^) i toString] cat . /p set |
|
p [(class) (recursivePolynomial)] dc xml /ff set |
|
ff xml_to_cmo cmoTreeToPostfix /gg set |
|
[(parse) gg] extension pop p sub /result set |
|
result (0). eq |
|
{ |
|
} |
|
{ |
|
(p = ) messagen p message |
|
(i=) messagen i message (Error in OMproxy-testsuits2 ) error |
|
} ifelse |
|
} for |
|
(Done.) message |
|
} def |
|
|
|
|
|
|
|
|