Ignore:
Timestamp:
Oct 9, 2008, 9:57:49 PM (12 years ago)
Author:
yura
Message:
  • Library extentions (after hdd errors).
File:
1 edited

Legend:

Unmodified
Added
Removed
  • to-imperative/trunk/java/refal/refal/plus/XML.rf

    r3960 r3964  
    11$module "refal.plus.XML";
    22
    3 $use Convert Stream  StdIO;
     3$use Convert Stream StdIO;
     4
     5$func? IsBlank t.term = ;
     6IsBlank \{ ' '; '\n'; '\r'; '\t'; };
     7
     8$func? IsBlankOrDelim t.delim t.term = ;
     9IsBlankOrDelim 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
     12GetDelims 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
     24GetXMLFormat s.stream,
     25  <Scans s.stream '<?'> : '<?' =
     26  <Get_Delims s.stream '?>'> : e.format '?>',
     27  '<?' e.format '?>';
     28
    429
    530$func? GetComment s.stream = e.comment;
     
    1035  '<!--' e.comment '-->';
    1136
    12 
    1337$func? GetCDATA s.stream = e.cdata;
    1438
     
    1842  '<![CDATA[' e.cdata ']]>';
    1943
    20 
    2144$func? GetTag s.stream = e.text (e.tag);
    2245
    2346GetTag s.stream =
    24   <Get_Delim s.stream '<'> : e.text '<',
     47  <GetDelims s.stream '<'> :: e.text,
     48  //<Get_Delim s.stream '<'> : e.text '<',
    2549  <Ungets s.stream '<'>, {
     50    <GetXMLFormat s.stream> : '<?' e.format '?>',
     51      e.text ((XML_FORMAT) e.format) <GetTag s.stream>;
    2652    <GetComment s.stream> : '<!--' e.comment '-->',
    2753      e.text ((COMMENT) e.comment) <GetTag s.stream>;
    2854    <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 '>'>);
    3158  };
    3259
Note: See TracChangeset for help on using the changeset viewer.