コード例 #1
0
ファイル: ClassParser.java プロジェクト: rwaldron/magpie
  private void parseField(MagpieParser parser, boolean isMutable, Map<String, Field> fields) {
    String name = parser.consume(TokenType.NAME).getString();

    // Parse the pattern if there is one.
    Pattern pattern;
    if (parser.lookAhead(TokenType.EQUALS) || parser.lookAhead(TokenType.LINE)) {
      pattern = Pattern.wildcard();
    } else {
      pattern = PatternParser.parse(parser);
    }

    // Parse the initializer if there is one.
    Expr initializer;
    if (parser.match(TokenType.EQUALS)) {
      initializer = parser.parseExpressionOrBlock();
    } else {
      initializer = null;
    }

    fields.put(name, new Field(isMutable, initializer, pattern));
  }