Package de.maramuse.soundcomp.parser.SCParser

Examples of de.maramuse.soundcomp.parser.SCParser.ParserVal


    // TODO: offer option to set a pitch offset to a scale
    Integer pitch=0;
    List<ParserVal> values=_scale.getValues();
    int sz=values.size();
    for(int i=0; i<=sz; i++){
      ParserVal val=values.get(i);
      if(!(val instanceof StringIndexedNumber)){
      throw new IllegalArgumentException("illegal content in scale "+_scale.getName());
      }
      StringIndexedNumber sin=(StringIndexedNumber)val;
      // TODO make index and value possible calculation results for more flexibility
View Full Code Here


      if(nextScheduledEvent)do{
      List<ParserVal> m=v.getpVoice().getMelody();
      int melodyIndex=v.getMelodyIndex();
      // only do anything if this voice has not yet reached its end
      if(melodyIndex<m.size()){
        ParserVal pv=m.get(melodyIndex);
        v.setMelodyIndex(melodyIndex+1);
        System.out.println(v.getpVoice().getName()+" retrieved a "+pv.getClass().getSimpleName()+" at timestamp "+t+", iteration "+iteration);
        if(pv instanceof de.maramuse.soundcomp.parser.Note){
        de.maramuse.soundcomp.parser.Note n=(de.maramuse.soundcomp.parser.Note)pv;
        System.out.println("it is a "+n.getText());
        // instantiate and connect the process instance and delay events for the gate
        // don't forget to consider the individual delay shifted by maximumNegativeDelay - a
View Full Code Here

  parser.setOptimize(true);
 
  List<String> paths=new ArrayList<String>();
  File file=new File("javasrc/de/maramuse/soundcomp/test/testfiles/tempotest");
  Preprocessor.setDebug(false);
  ParserVal p=parser.parse(file, paths);
  if(p==null){
    SCParser.ParserVal val=parser.getLastSymbol();
    if(val==null){
    fail("no result and no error text");
    return;
View Full Code Here

  Parser parser=new Parser();
  parser.setDebug(true);
  List<String> paths=new ArrayList<String>();
  paths.add("javasrc/de/maramuse/soundcomp/test/testfiles/");
  File file=new File("javasrc/de/maramuse/soundcomp/test/testfiles/parsertest");
  ParserVal p=parser.parse(file, paths);
  if(p==null){
    SCParser.ParserVal val=parser.getLastSymbol();
    if(val==null){
    fail("no result and no error text");
    return;
View Full Code Here

  // FormulaElements always are TemplateProvider-s
  el=((TemplateProvider)val).getTemplate().clone();
  // FormulaElements always are ParserVal-s
  el.setAbstractName(((ParserVal)val).getText());
  if(val instanceof FormulaElement3){
    ParserVal v3=((FormulaElement3)val).getInput3Val();
    SourceStore el3=getAsSource(v3);
    el.setSource(StandardParameters.IN.i, el3.source, el3.sourceIndex);
  }
  if(val instanceof FormulaElement2){
    ParserVal v2=((FormulaElement2)val).getInput2Val();
    SourceStore el2=getAsSource(v2);
    el.setSource(StandardParameters.IN.i, el2.source, el2.sourceIndex);
  }
  if(val instanceof FormulaElement1){
    ParserVal v1=((FormulaElement1)val).getInput1Val();
    SourceStore el1=getAsSource(v1);
    el.setSource(StandardParameters.IN.i, el1.source, el1.sourceIndex);
  }
  return el;
  }
View Full Code Here

  if(inner.size()!=2)
    throw new InternalError("\"*\" requires two arguments");
  if(inner.get(0).isConstant()&&inner.get(1).isConstant()){
    if(inner.get(0).getType()==SCParser.NUMBER&&inner.get(1).getType()==SCParser.NUMBER){
    try{
      ParserVal ret=new Number(inner.get(0).asDouble()*inner.get(1).asDouble());
      ret.setFilename(filename);
      ret.setLine(line);
      return ret;
    }catch(NumberFormatException ex){
      throw new IllegalArgumentException("should not happen: number format error", ex);
    }
    }
View Full Code Here

  if(inner.size()!=2)
    throw new InternalError("\""+getText()+"^\" requires two arguments");
  if(inner.get(0).isConstant()&&inner.get(1).isConstant()){
    if(inner.get(0).getType()==SCParser.NUMBER&&inner.get(1).getType()==SCParser.NUMBER){
    try{
      ParserVal ret=new Number(Math.pow(inner.get(0).asDouble(),
        Math.log(inner.get(1).asDouble())));
      ret.setFilename(filename);
      ret.setLine(line);
      return ret;
    }catch(NumberFormatException ex){
      throw new IllegalArgumentException("should not happen: number format error", ex);
    }
    }
View Full Code Here

  if(inner.size()<1||inner.size()>2)
    throw new InternalError("\"-\" requires at least one and at most two arguments");
  if(inner.get(0).isConstant()&&inner.get(1).isConstant()){
    if(inner.get(0).getType()==SCParser.NUMBER&&inner.get(1).getType()==SCParser.NUMBER){
    try{
      ParserVal ret=new Number(inner.get(0).asDouble()-inner.get(1).asDouble());
      ret.setFilename(filename);
      ret.setLine(line);
      return ret;
    }catch(NumberFormatException ex){
      throw new IllegalArgumentException("should not happen: number format error", ex);
    }
    }
View Full Code Here

    if(inner.get(0).getType()==SCParser.STRING){
    return new SCString(inner.get(0).getText()+inner.get(1).getText());
    }
    if(inner.get(0).getType()==SCParser.NUMBER&&inner.get(1).getType()==SCParser.NUMBER){
    try{
      ParserVal ret=new Number(inner.get(0).asDouble()+inner.get(1).asDouble());
      ret.setFilename(filename);
      ret.setLine(line);
      return ret;
    }catch(NumberFormatException ex){
      throw new IllegalArgumentException("should not happen: number format error", ex);
    }
    }
View Full Code Here

   * @return the symbol that occupies the name
   */
  public static ParserVal findElement(String name){
  ParserStateElement current=current();
  while(current!=null){
    ParserVal val=current.getElement(name);
    if(val!=null)return val;
    current=up(current);
  }
  return null;
  }
View Full Code Here

TOP

Related Classes of de.maramuse.soundcomp.parser.SCParser.ParserVal

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.