// $Id$ $use Apply Arithm Box Class Convert Dir File Java List StdIO Table ; $use "rfpc" "rfp_helper" ; $import "java.io.BufferedReader"; $import "org.refal.plus.comp.CompilerEnvironment"; $import "org.refal.plus.library.RefalLibrary"; $func? Arg_GetInterfaceReader t.fileId = e.reader; $func? Arg_GetImplementationReader t.fileId = e.reader (e.qname); $func? Arg_GetInterfaceReaderForModule e.name = e.reader (e.qname); $func? Arg_GetInterfaceReaderForClass e.name = e.reader (e.qname); $func? Env_GetInterfaceReader t.fileId = e.reader; $func? Env_GetImplementationReader t.fileId = e.reader (e.qname); $func? Env_GetInterfaceReaderForModule e.name = e.reader (e.qname); $func? Env_GetInterfaceReaderForClass e.name = e.reader (e.qname); $box Env Package ; RFP_Src_Get_Line e.source = e.source : s.srctype s.getline_func (e.name) (e.src), ; RFP_Src_Close s.srctype s.getline_func (e.name) (e.src) = s.srctype : { FILE = e.src : s.channel, { = ; ; }; STDIN = ; }; RFP_Src_GetInterfaceReader t.fileId = { : s = ; = ; }; RFP_Src_GetImplementationReader t.fileId = { : s = ; = ; }; RFP_Src_GetInterfaceReaderForModule e.name = { : s = ; = ; }; RFP_Src_GetInterfaceReaderForClass e.name = { : s = ; = ; }; $func? Try_Open e.filename = e.source; $func? Get_Line_From_File e.source = e.line ; RFP_Src_InitFromArgs e.files = { >>; ; }; Arg_GetInterfaceReader $r (e.file '.' e) = ; Arg_GetImplementationReader (e.file) = : s.dir_separator, e.file : { $r e s.dir_separator e.name '.' e = e.name; $r e.name '.' e = e.name; } :: e.name, ( ); Arg_GetInterfaceReaderForModule e.name = : s.dir_separator, :: e.fname, \{ : e (e.dirname) e, (e.name); : e (e.dirname) e, ("refal" "plus" e.name); }; Arg_GetInterfaceReaderForClass e.name = : s.dir_separator, "org" "refal" "plus" "wrappers" e.name :: e.name, :: e.fname, : e (e.dirname) e, (e.name); Try_Open e.filename = { , ;; }, { \? : s.dir_separator, { e.filename : $r e.dirname s.dir_separator e.fname = (e.dirname) e.fname; ('.') e.filename; } :: (e.dirname) e.fname, > :: e.fname, :: s.dir, $iter, { ; \! $fail; } :: e.filename, : e.fname, :: s.chl, , e.dirname s.dir_separator e.filename s.chl; = :: s.chl, , e.filename s.chl; } :: e.filename s.chl, { , ;; }, FILE &Get_Line_From_File (e.filename) (s.chl); Get_Line_From_File s.channel = ; $func? Get_Line_From_Reader s.reader = e.line; RFP_Src_InitFromEnv s.env = , ; Env_GetInterfaceReader t = : s.env, > :: s.reader, { : s.reader = $fail; FILE &Get_Line_From_Reader () (); }; Env_GetImplementationReader t = : s.env, : s.reader, { : s.reader = $fail; FILE &Get_Line_From_Reader () () (); }; Env_GetInterfaceReaderForModule e.name = : s.env, > :: s.qname, :: s.reader, { : s.reader = :: s.reader, { : s.reader = $fail; s.reader ("refal" "plus" e.name); }; s.reader (e.name); } :: s.reader (e.name), FILE &Get_Line_From_Reader (e.name) () (e.name); Env_GetInterfaceReaderForClass e.name = : s.env, "org" "refal" "plus" "wrappers" e.name :: e.name, > :: s.qname, :: s.reader, { : s.reader = $fail; FILE &Get_Line_From_Reader (e.name) () (e.name); }; Get_Line_From_Reader s.reader = :: s.string, { : s.string = $fail; ; }; RFP_Src_IsCaseInsensitive = ; RFP_Src_WordFirstSymbol = { = '_'; '?!'; }; RFP_Src_WordSymbol = { = '_.'; '?!-'; }; RFP_Src_VarSymbol = { = '_'; '?!-'; }; RFP_Src_InitPosition = 0 1; RFP_Src_NextRow s.row s.col = 1; RFP_Src_NextColumn s.row s.col = s.row ; RFP_Src_PositionToChars s.row s.col = ;