Changeset 3953 for to-imperative/trunk/java/refal/refal/plus/XML.rf
- Timestamp:
- Oct 2, 2008, 6:13:11 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
to-imperative/trunk/java/refal/refal/plus/XML.rf
r3952 r3953 2 2 3 3 $use Convert Stream StdIO; 4 5 $func? GetComment s.stream = e.comment; 6 7 GetComment s.stream, 8 <Scans s.stream '<!--'> : '<!--' = 9 <Get_Delims s.stream '-->'> : e.comment '-->', 10 '<!--' e.comment '-->'; 11 12 13 $func? GetCDATA s.stream = e.cdata; 14 15 GetCDATA s.stream, 16 <Scans s.stream '<![CDATA['> : '<![CDATA[' = 17 <Get_Delims s.stream ']]>'> : e.cdata ']]>', 18 '<![CDATA[' e.cdata ']]>'; 19 4 20 5 21 $func? GetTag s.stream = e.text (e.tag); … … 7 23 GetTag s.stream = 8 24 <Get_Delim s.stream '<'> : e.text '<', 9 <Get_Delim s.stream '>'> : e.tag '>', 10 e.text ('<' e.tag '>'); 25 <Ungets s.stream '<'>, { 26 e.text ((COMMENT) <GetComment s.stream>) <GetTag s.stream>; 27 e.text ((CDATA) <GetCDATA s.stream>) <GetTag s.stream>; 28 e.text (<Get_Delim s.stream '>'>); 29 }; 11 30 12 $func ReadTag s.stream e.tag = t; 31 $func SplitName e = (e) e; 32 33 SplitName { 34 e.name ' ' e.attrs = (e.name) e.attrs; 35 e.name = (e.name); 36 }; 37 38 $func? ReadTag s.stream e.tag = t; 13 39 14 40 ReadTag s.stream e.tag, e.tag : { 15 41 '<' e.name '/>' = 16 (<ToWord e.name>); 42 <SplitName e.name> :: (e.name) e.attrs, 43 (<ToWord e.name> <ToWord e.attrs>); 17 44 '<' e.name '>' = 45 <SplitName e.name> :: (e.name) e.attrs, 18 46 <GetTag s.stream> $iter e.text <ReadTag s.stream e.tag> <GetTag s.stream> :: e.text (e.tag), 19 47 e.tag : '</' e.name '>', 20 (<ToWord e.name> e.text);48 (<ToWord e.name> <ToWord e.attrs> e.text); 21 49 }; 22 50 23 $public $func Read s = t;51 $public $func? Read s = e; 24 52 25 Read s.stream = <GetTag s.stream> : (e.tag),<ReadTag s.stream e.tag>;53 Read s.stream = <GetTag s.stream> : e.text (e.tag), e.text <ReadTag s.stream e.tag>; 26 54 27 55 $func Main = e; 28 56 29 57 Main = 30 <WriteLn <Read <Expr_Open '<Z>as<C/><B>b< Z></Z></B><C>c</C></Z>'>>>;58 <WriteLn <Read <Expr_Open '<Z>as<C/><B>b<!--<Z></Z>--></B><C>c</C></Z>'>>>;
Note: See TracChangeset
for help on using the changeset viewer.