// Path: src/main/java/com/github/kmizu/yapp/util/SystemProperties.java
// public class SystemProperties {
//   public static final String LINE_SEPARATOR = System.getProperty("line.separator");
//   public static final String PATH_SEPARATOR = File.pathSeparator;
//   public static final String FILE_SEPARATOR = File.separator;
// }


import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import com.github.kmizu.yapp.util.SystemProperties;

    public Iterator<Rule> iterator() {
      return rules.iterator();
    }

    public Symbol name() {
      return name;
    }
    
    public void setName(Symbol name) {
      this.name = name;
    }
    
    public List<MacroDefinition> macros() {
      return macros;
    }

    public List<Rule> getRules() {
      return rules;
    }

    @Override
    public <R, C> R accept(Visitor<R, C> visitor, C context) {
      return visitor.visit(this, context);
    }
    
    @Override
    public String toString() {
      StringBuffer buf = new StringBuffer();
      buf.append("grammar " + name + ";");
// Path: src/main/java/com/github/kmizu/yapp/util/SystemProperties.java
// public class SystemProperties {
//   public static final String LINE_SEPARATOR = System.getProperty("line.separator");
//   public static final String PATH_SEPARATOR = File.pathSeparator;
//   public static final String FILE_SEPARATOR = File.separator;
// }


// Path: src/main/java/com/github/kmizu/yapp/Ast.java
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import com.github.kmizu.yapp.util.SystemProperties;


    public Iterator<Rule> iterator() {
      return rules.iterator();
    }

    public Symbol name() {
      return name;
    }
    
    public void setName(Symbol name) {
      this.name = name;
    }
    
    public List<MacroDefinition> macros() {
      return macros;
    }

    public List<Rule> getRules() {
      return rules;
    }

    @Override
    public <R, C> R accept(Visitor<R, C> visitor, C context) {
      return visitor.visit(this, context);
    }
    
    @Override
    public String toString() {
      StringBuffer buf = new StringBuffer();
      buf.append("grammar " + name + ";");
      buf.append(SystemProperties.LINE_SEPARATOR);