Changeset 3964 for to-imperative/trunk/java/refal/refal/plus/XML.rf
- Timestamp:
- Oct 9, 2008, 9:57:49 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
to-imperative/trunk/java/refal/refal/plus/XML.rf
r3960 r3964 1 1 $module "refal.plus.XML"; 2 2 3 $use Convert Stream StdIO; 3 $use Convert Stream StdIO; 4 5 $func? IsBlank t.term = ; 6 IsBlank \{ ' '; '\n'; '\r'; '\t'; }; 7 8 $func? IsBlankOrDelim t.delim t.term = ; 9 IsBlankOrDelim t.delim t.term, t.term : \{ ' '; '\n'; '\r'; '\t'; t.delim; }; 10 11 $func GetDelims s.stream t.delim = e.expr; // no e.delim at the end 12 GetDelims s.stream t.delim = 13 GO $iter { 14 <Get_While s.stream &IsBlank> :: e, { 15 <Scanc s.stream t.delim> : v = e.expr STOP; 16 <Get_Until s.stream &IsBlankOrDelim t.delim> : v.head = e.expr ' ' v.head GO; 17 e.expr STOP; 18 }; 19 } :: e.expr s.flag, s.flag : STOP = 20 { e.expr : ' ' e.head = e.head; e.expr; }; 21 22 $func? GetXMLFormat s.stream = e.comment; 23 24 GetXMLFormat s.stream, 25 <Scans s.stream '<?'> : '<?' = 26 <Get_Delims s.stream '?>'> : e.format '?>', 27 '<?' e.format '?>'; 28 4 29 5 30 $func? GetComment s.stream = e.comment; … … 10 35 '<!--' e.comment '-->'; 11 36 12 13 37 $func? GetCDATA s.stream = e.cdata; 14 38 … … 18 42 '<![CDATA[' e.cdata ']]>'; 19 43 20 21 44 $func? GetTag s.stream = e.text (e.tag); 22 45 23 46 GetTag s.stream = 24 <Get_Delim s.stream '<'> : e.text '<', 47 <GetDelims s.stream '<'> :: e.text, 48 //<Get_Delim s.stream '<'> : e.text '<', 25 49 <Ungets s.stream '<'>, { 50 <GetXMLFormat s.stream> : '<?' e.format '?>', 51 e.text ((XML_FORMAT) e.format) <GetTag s.stream>; 26 52 <GetComment s.stream> : '<!--' e.comment '-->', 27 53 e.text ((COMMENT) e.comment) <GetTag s.stream>; 28 54 <GetCDATA s.stream> : '<![CDATA[' e.cdata ']]>', 29 e.text ((CDATA) e.cdata) <GetTag s.stream>; 30 e.text (<Get_Delim s.stream '>'>); 55 e.text ((CDATA) e.cdata) <GetTag s.stream>; 56 e.text (<GetDelims s.stream '>'> '>'); 57 //e.text (<Get_Delim s.stream '>'>); 31 58 }; 32 59
Note: See TracChangeset
for help on using the changeset viewer.