stringsk.sa


Generated by gen_html_sa_files from ICSI. Contact gomes@icsi.berkeley.edu for details
 

class STRINGSK

class STRINGSK is -- Copyright (C) 1996 Kouji KODAMA -- IntCh:='0123456789ABCDEF'; -- def ReadLineF(F:File; inout str:ARRAY OF CHAR); -- Use FILE::get_str or FILE::get_line -- Use STR_CURSOR::skipspace skipSpace(str:STR, inout pos:CARD) is loop if pos>=str.size then break!; elsif str[pos].is_space then pos:=pos+1; else break!; end; end; end; splitStr(inout s:STR_CURSOR):STR is str:STR:=""; ch:CHAR; s.skip_space; loop ch:=s.item; if ch='\0' then return str; elsif (ch='-') or (ch.is_digit) then str:= str+s.get_char; loop while!(s.item.is_digit); str:=str+s.get_char; end; s.skip_space; return str; elsif ch.is_alpha then loop while!(s.item.is_alpha); str:=str+s.get_char; end; s.skip_space; return str; else str:=str+s.get_char; s.skip_space; return str; end; end; end; -- searchStr(str0:STR, inout pos:INT, str1:STR):BOOL is -- Use STR_CURSOR::skip_over or STR_CURSOR::skip_thru -- STR::search(s:SAME, st:INT):INT -- Str2Int(str:ARRAY OF CHAR; inout pos:INT; inout i:INT):BOOL; Str2Int(str:STR, inout pos:CARD, inout i:INT):BOOL is ch:CHAR; pos0:CARD; neg:BOOL; i:=0.int; skipSpace(str,inout pos); if str.size<=pos then return false; end; ch:=str[pos]; if ch='-' then neg:=true; pos:=pos+1; else neg:=false; end; pos0:=pos; loop if str.size<=pos then break!; end; if str[pos].is_digit then i:=i*10+str[pos].digit_value; pos:=pos+1; else break! end; end; if neg then i:=-i; end; return (pos0<pos) end; Int2Str(i:INT, inout str:STR):BOOL is -- obsolete. Use INT::str or INTI::decimal_str. str:=i.inti.decimal_str; return true; end; TimeStr:STR is str:STR; str:="#Date:"; str:=str+DATE::year.card.decimal_str+"-"+DATE::mon.str+"-"+DATE::mday.str+","; str:=str+DATE::hour.str+":"+DATE::min.str+":"+DATE::sec.str+"."; return str; end; end;