[BACK]Return to OM2OXM.java CVS log [TXT][DIR] Up to [local] / OpenXM / src / OpenMath

Diff for /OpenXM/src/OpenMath/OM2OXM.java between version 1.2 and 1.6

version 1.2, 1999/11/04 19:36:41 version 1.6, 1999/11/14 22:57:44
Line 1 
Line 1 
 /**  /**
  * $OpenXM$   * $OpenXM: OpenXM/src/OpenMath/OM2OXM.java,v 1.5 1999/11/12 11:36:09 tam Exp $
  *   *
  * $B$3$N%/%i%9$G$O0J2<$N(B BNF $B$GI=$5$l$k9=J82r@O$r<BAu$7$F$$$k(B   * $B$3$N%/%i%9$G$O0J2<$N(B BNF $B$GI=$5$l$k9=J82r@O$r<BAu$7$F$$$k(B
  * expr -> stag [expr | immediate]* etag   * expr -> stag [expr | immediate]* etag
Line 39  final class OM2OXM implements Runnable{
Line 39  final class OM2OXM implements Runnable{
   private int token = TT_NULL;    private int token = TT_NULL;
   private boolean lexPushbackFlag = false;    private boolean lexPushbackFlag = false;
   private OpenXM asir; // for debug    private OpenXM asir; // for debug
     private boolean debug = true;
   
   // Token Type for lexical analyzer    // Token Type for lexical analyzer
   final static int TT_NULL      = 0;    final static int TT_NULL      = 0;
Line 116  final class OM2OXM implements Runnable{
Line 117  final class OM2OXM implements Runnable{
   
     case CMO.CMO_DMS_GENERIC:      case CMO.CMO_DMS_GENERIC:
       ret += "<OMA><OMS name=\"PolyRing\" cd=\"poly\"/>";        ret += "<OMA><OMS name=\"PolyRing\" cd=\"poly\"/>";
       ret += "<OMI>2</OMI>";        ret += "<OMI>2</OMI></OMA>";
       return ret;        return ret;
   
     case CMO.CMO_DISTRIBUTED_POLYNOMIAL:      case CMO.CMO_DISTRIBUTED_POLYNOMIAL:
Line 220  final class OM2OXM implements Runnable{
Line 221  final class OM2OXM implements Runnable{
     }else if(ch != -1){      }else if(ch != -1){
       is.unread(ch);        is.unread(ch);
       while((ch = is.read()) != '<' && ch != -1){        while((ch = is.read()) != '<' && ch != -1){
         System.out.println("debug: "+ch);          debug("debug: "+ch);
         if(isSpace(ch)){          if(isSpace(ch)){
           String spaces = String.valueOf(ch);            String spaces = String.valueOf((char)ch);
   
           while(isSpace(ch = is.read())){            while(isSpace(ch = is.read())){
             spaces += (char)ch;              spaces += (char)ch;
Line 250  final class OM2OXM implements Runnable{
Line 251  final class OM2OXM implements Runnable{
       parse_error("We expect type :'"+ type        parse_error("We expect type :'"+ type
                   +"', but we got type :'"+ token +"'("+ attribute +").");                    +"', but we got type :'"+ token +"'("+ attribute +").");
     }      }
     //System.out.println(":"+token+":"+attribute+":"+type);      //debug(":"+token+":"+attribute+":"+type);
     return true;      return true;
   }    }
   
Line 266  final class OM2OXM implements Runnable{
Line 267  final class OM2OXM implements Runnable{
     }      }
   
     ret = parse_object();      ret = parse_object();
   
     exceptTokenTypeInParse(TT_EndTag);      exceptTokenTypeInParse(TT_EndTag);
     if(!attribute.equals("OMOBJ")){      if(!attribute.equals("OMOBJ")){
       parse_error("We expect '</OMOBJ>'.");        parse_error("We expect '</OMOBJ>'.");
Line 278  final class OM2OXM implements Runnable{
Line 279  final class OM2OXM implements Runnable{
   private CMO parse_object() throws IOException{    private CMO parse_object() throws IOException{
     // object -> variable      // object -> variable
     //         | '<OMI>' S? integer S? '</OMI>'      //         | '<OMI>' S? integer S? '</OMI>'
       //         | '<OMSTR>' S? utf7 S? '</OMSTR>'
     //         | '<OMA>' S? symbol S? objects S? '</OMA>'      //         | '<OMA>' S? symbol S? objects S? '</OMA>'
     CMO ret;      CMO ret;
   
Line 291  final class OM2OXM implements Runnable{
Line 293  final class OM2OXM implements Runnable{
     }else if(attribute.equals("OMI")){      }else if(attribute.equals("OMI")){
       pushbackLex();        pushbackLex();
       ret = parse_OMI();        ret = parse_OMI();
       }else if(attribute.equals("OMSTR")){
         pushbackLex();
         ret = parse_OMSTR();
     }else if(attribute.equals("OMA")){      }else if(attribute.equals("OMA")){
       String name,cdname;        String name,cdname;
       int argnum = 0;        int argnum = 0;
Line 299  final class OM2OXM implements Runnable{
Line 304  final class OM2OXM implements Runnable{
   
       if(name.equals("DMP")){        if(name.equals("DMP")){
         ret = parse_symb_DMP();          ret = parse_symb_DMP();
           debug("poly: "+ret);
       }else{        }else{
         ret = new CMO_TREE(name,"Basic",parse_objects());          ret = new CMO_TREE(name,"Basic",parse_objects());
       }        }
Line 333  final class OM2OXM implements Runnable{
Line 339  final class OM2OXM implements Runnable{
     return ret;      return ret;
   }    }
   
     private CMO_STRING parse_OMSTR() throws IOException{
       CMO_STRING ret;
   
       exceptTokenTypeInParse(TT_StartTag);
       if(!attribute.equals("OMSTR")){
         parse_error("We expect '<OMSTR>'.");
       }
   
       if(readNextToken() == TT_String){
         //ret = (CMO_STRING)parse_utf7();
         ret = new CMO_STRING(attribute);
       }else{
         ret = new CMO_STRING("");
         pushbackLex();
       }
   
       exceptTokenTypeInParse(TT_EndTag);
       if(!attribute.equals("OMSTR")){
         parse_error("We expect '</OMSTR>'.");
       }
   
       return ret;
     }
   
   private CMO parse_symb_DMP() throws IOException{    private CMO parse_symb_DMP() throws IOException{
     parse_object();      parse_object();
     return new CMO_DISTRIBUTED_POLYNOMIAL(new CMO_DMS_GENERIC(),      return new CMO_DISTRIBUTED_POLYNOMIAL(new CMO_DMS_GENERIC(),
Line 394  final class OM2OXM implements Runnable{
Line 424  final class OM2OXM implements Runnable{
       array[i] = ((CMO_ZZ)degree.elementAt(i+1)).intValue();        array[i] = ((CMO_ZZ)degree.elementAt(i+1)).intValue();
     }      }
   
       //debug("monom: "+ new CMO_MONOMIAL32(array,(CMO_ZZ)degree.elementAt(0)));
     return new CMO_MONOMIAL32(array,(CMO_ZZ)degree.elementAt(0));      return new CMO_MONOMIAL32(array,(CMO_ZZ)degree.elementAt(0));
   }    }
   
Line 630  final class OM2OXM implements Runnable{
Line 661  final class OM2OXM implements Runnable{
       System.err.println((char)is.read());        System.err.println((char)is.read());
     }catch(IOException e){}      }catch(IOException e){}
     System.exit(1);      System.exit(1);
     }
   
     private void debug(String str){
       if(debug){
         System.err.println(str);
       }
   }    }
   
   public static void main(String[] argv) throws IOException{    public static void main(String[] argv) throws IOException{

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.6

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>