Changeset 2288


Ignore:
Timestamp:
Jan 25, 2007, 8:10:10 PM (14 years ago)
Author:
orlov
Message:
  • First version of $import directive.
Location:
to-imperative/trunk
Files:
1 added
1 edited

Legend:

Unmodified
Added
Removed
  • to-imperative/trunk/compiler/rfp_lex.rf

    r2096 r2288  
    180180              e.s;
    181181            } :: e.s,
     182            {
     183              <RFP-Debug?>, <PrintLN "Processing " e.s>;;
     184            },
     185            {
     186              <Find-Include? e.s s.ci?> :: e.include,
     187                <Push-Source e.include I 0 1>,
     188                e.nts <Scan-Tokens>;
     189              <RFP-Error (e.p) ("Unable to find include file \'" e.s ".rfi\'")>,
     190                e.nts;
     191            } :: e.nts,
     192            (e.nts) (e.line) T;
     193          ((e.p) (EOF)) =
     194            <RFP-Error (e.p) ("Unexpected end of file")>,
     195            (e.nts) (e.line) F;
     196          ((e.p) (e.tag)) =
     197            <RFP-Error (e.p) ("Unexpected token "e.tag)>,
     198            (e.nts) (e.line) T;
     199        };
     200      } :: (e.nts) (e.line) s1,
     201      s1 : F,
     202      e.nts <Scan-Tokens e.line>;
     203    };
     204    ((e) (IMPORT)) = {
     205      () (e.line) T $iter {
     206        <Scan-Token e.line> :: (e.t) (e.line),
     207        e.t : {
     208          ((e) (SEMICOLON)) = (e.nts) (e.line) F;
     209          ((e.p) (s.WORD-or-QWORD e.s)),
     210            s.WORD-or-QWORD : \{
     211              WORD = CI;
     212              QWORD = NOT-CI;
     213            } :: s.ci? =
     214            'org.refal.plus.wrappers.' e.s :: e.s,
    182215            {
    183216              <RFP-Debug?>, <PrintLN "Processing " e.s>;;
     
    337370    '$trap' = TRAP;
    338371    '$use' = USE;
     372    '$import' = IMPORT;
    339373    '$vector' = VECTOR;
    340374    '$with' = WITH;
     
    533567    e = '.' s.dir-separator;
    534568  } :: e.dirn,
    535 //  {
    536 //    e.name $iter { e.name : e1 '.' e2 = e1 s.dir-separator e2; } :: e.name,
    537 //    # \{ e.name : e1 '.' e2; }, e.name;
    538 //  } :: e.name,
     569  {
     570    e.name $iter { e.name : e1 '.' e2 = e1 s.dir-separator e2; } :: e.name,
     571    # \{ e.name : e1 '.' e2; }, e.name;
     572  } :: e.name,
    539573  \{
    540574    <In-Table? &RFP-Options CASE-INSENSITIVE> \!
Note: See TracChangeset for help on using the changeset viewer.