Package com.sun.tahiti.grammar.util

Examples of com.sun.tahiti.grammar.util.Multiplicity


      for( int i=0; i<b.length; i++ ) {
        final boolean[] hasChildFieldItem = new boolean[1];

        // compute the multiplicity of the all child JavaItems and
        // also compute whether this branch has FieldItem in it.
        Multiplicity m = Multiplicity.calc( b[i],
          new MultiplicityCounter(){
            protected Multiplicity isChild( Expression exp ) {
              if(exp instanceof FieldItemhasChildFieldItem[0] = true;
              if(exp instanceof PrimitiveItembBranchWithPrimitive[0] = true;
             
              if(exp instanceof IgnoreItemreturn Multiplicity.zero;
              if(exp instanceof JavaItem)    return Multiplicity.one;
              else            return null;
            }
          });

        if(debug!=null) {
          debug.println( "  Branch: " + ExpressionPrinter.printContentModel(b[i]) );
          debug.println( "    multiplicity:"+m+"  hasChildFieldItem:"+hasChildFieldItem[0] );
        }
       
        if(m.isZero())
          continue;    // do nothing for this branch.
       
        numLiveBranch++;
       
        if(!m.isAtMostOnce()) {
          // memorize that this branch is complex.
          complexBranch[i] = true;
          continue;
        }
       
View Full Code Here


      for( int i=0; i<b.length; i++ ) {
        final boolean[] hasChildFieldItem = new boolean[1];

        // compute the multiplicity of the all child JavaItems and
        // also compute whether this branch has FieldItem in it.
        Multiplicity m = Multiplicity.calc( b[i],
          new MultiplicityCounter(){
            protected Multiplicity isChild( Expression exp ) {
              if(exp instanceof FieldItemhasChildFieldItem[0] = true;
              if(exp instanceof PrimitiveItembBranchWithPrimitive[0] = true;
             
              if(exp instanceof IgnoreItemreturn Multiplicity.zero;
              if(exp instanceof JavaItem)    return Multiplicity.one;
              else            return null;
            }
          });

        if(debug!=null) {
          debug.println( "  Branch: " + ExpressionPrinter.printContentModel(b[i]) );
          debug.println( "    multiplicity:"+m+"  hasChildFieldItem:"+hasChildFieldItem[0] );
        }
       
        if(m.isZero())
          continue;    // do nothing for this branch.
       
        numLiveBranch++;
       
        if( !hasChildFieldItem[0] ) {
View Full Code Here

      throw new Error("concur is not supported");
    }
   
    public Expression onChoice( ChoiceExp exp ) {
      Expression lhs = exp.exp1.visit(this);
      Multiplicity lhc = multiplicity;
      Expression rhs = exp.exp2.visit(this);
      Multiplicity rhc = multiplicity;
     
      multiplicity = Multiplicity.choice(lhc,rhc);
      return reader.pool.createChoice( lhs, rhs );
    }
View Full Code Here

      return reader.pool.createChoice( lhs, rhs );
    }
   
    public Expression onSequence( SequenceExp exp ) {
      Expression lhs = exp.exp1.visit(this);
      Multiplicity lhc = multiplicity;
      Expression rhs = exp.exp2.visit(this);
      Multiplicity rhc = multiplicity;
     
      multiplicity = Multiplicity.group(lhc,rhc);
      return reader.pool.createSequence( lhs, rhs );
    }
View Full Code Here

      return reader.pool.createSequence( lhs, rhs );
    }
   
    public Expression onInterleave( InterleaveExp exp ) {
      Expression lhs = exp.exp1.visit(this);
      Multiplicity lhc = multiplicity;
      Expression rhs = exp.exp2.visit(this);
      Multiplicity rhc = multiplicity;
     
      multiplicity = Multiplicity.group(lhc,rhc);
      return reader.pool.createInterleave( lhs, rhs );
    }
View Full Code Here

TOP

Related Classes of com.sun.tahiti.grammar.util.Multiplicity

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.