diff --git a/src/main/java/org/ntlab/rdlcanvas/parser/ArrayValue.java b/src/main/java/org/ntlab/rdlcanvas/parser/ArrayValue.java index 6706012..66f1029 100644 --- a/src/main/java/org/ntlab/rdlcanvas/parser/ArrayValue.java +++ b/src/main/java/org/ntlab/rdlcanvas/parser/ArrayValue.java @@ -6,14 +6,17 @@ public class ArrayValue extends Value { List values = new ArrayList<>(); + // 与えられたValue(String, Integer, Array, Json)を配列に追加 public void addValue(Value value) { values.add(value); } + // 保持している値(Value)のリストを返す public List getValues() { return values; } + // 文字列として値を返す @Override public String toString() { return values.toString(); diff --git a/src/main/java/org/ntlab/rdlcanvas/parser/IntegerValue.java b/src/main/java/org/ntlab/rdlcanvas/parser/IntegerValue.java index ea67f78..feb5bc4 100644 --- a/src/main/java/org/ntlab/rdlcanvas/parser/IntegerValue.java +++ b/src/main/java/org/ntlab/rdlcanvas/parser/IntegerValue.java @@ -3,14 +3,17 @@ public class IntegerValue extends Value { Integer intValue; + // 与えられた整数を代入するコンストラクタ public void setIntValue(Integer intValue) { this.intValue = intValue; } + // 保持している値(Integer)を返す public Integer getIntValue() { return intValue; } + // 文字列として値を返す @Override public String toString() { return String.valueOf(intValue); diff --git a/src/main/java/org/ntlab/rdlcanvas/parser/JsonValue.java b/src/main/java/org/ntlab/rdlcanvas/parser/JsonValue.java index ebdf6e1..ae29b55 100644 --- a/src/main/java/org/ntlab/rdlcanvas/parser/JsonValue.java +++ b/src/main/java/org/ntlab/rdlcanvas/parser/JsonValue.java @@ -4,22 +4,25 @@ import java.util.Map; public class JsonValue extends Value { + //JsonのKeyとValueの対応を保持するMap(Keyは文字列、ValueはValueクラスのインスタンス) Map json = new HashMap<>(); - //KeyとValueの対応(Json丸ごと) + //KeyとValueの対応(Map丸ごと)を返す public Map getJson() { return json; } - + // 与えられたKeyに対応するValueを返す public Value getValue(StringValue key) { return json.get(key); } + // 与えられたKeyとValueの対応をMapに追加 public void setJsonValue(StringValue key, Value value) { json.put(key, value); } + // MapからJson文字列を生成する。形式は{key1 : value1 , key2 : value2 , ...} @Override public String toString() { StringBuilder stringBuilder = new StringBuilder(); diff --git a/src/main/java/org/ntlab/rdlcanvas/parser/Parser.java b/src/main/java/org/ntlab/rdlcanvas/parser/Parser.java index ba1275c..43cdbb3 100644 --- a/src/main/java/org/ntlab/rdlcanvas/parser/Parser.java +++ b/src/main/java/org/ntlab/rdlcanvas/parser/Parser.java @@ -53,11 +53,15 @@ } } + // 入力されたJson文字列からValueを生成する public Value getValue() { return parseValue(tokenStream); } + // 値のパース public Value parseValue(TokenStream tokenStream) throws ExpectedJsonValue, ExpectedArrayValue, ExpectedStringValue { + // 次のトークンを見て、どの型の値をパースするかを決定する + // "{"のとき、JsonValue, "["のとき、ArrayValue, "\""のとき、StringValueとしてパースする if (tokenStream.checkNext().equals(LEFT_CURLY_BRACKET)) { tokenStream.next(); JsonValue jsonValue = parseJsonValue(tokenStream); @@ -162,8 +166,8 @@ public static class TokenStream { private ArrayList> tokens = new ArrayList<>(); private ArrayList lines = new ArrayList<>(); - private int line = 0; - private int n = 0; + private int line = 0; //現在の行 + private int n = 0; //現在の行の中でのトークンの位置 public TokenStream() { line = 0; diff --git a/src/main/java/org/ntlab/rdlcanvas/parser/StringValue.java b/src/main/java/org/ntlab/rdlcanvas/parser/StringValue.java index 2836615..649b82c 100644 --- a/src/main/java/org/ntlab/rdlcanvas/parser/StringValue.java +++ b/src/main/java/org/ntlab/rdlcanvas/parser/StringValue.java @@ -3,14 +3,17 @@ public class StringValue extends Value { String stringValue; + // 与えられた文字列を保持するコンストラクタ public void setStringValue(String stringValue) { this.stringValue = stringValue; } + // 保持している文字列を返す public String getStringValue() { return stringValue; } + // 文字列をtoStringメゾットとして返す @Override public String toString() { return stringValue; diff --git a/src/main/java/org/ntlab/rdlcanvas/parser/Value.java b/src/main/java/org/ntlab/rdlcanvas/parser/Value.java index 5d38945..a59c891 100644 --- a/src/main/java/org/ntlab/rdlcanvas/parser/Value.java +++ b/src/main/java/org/ntlab/rdlcanvas/parser/Value.java @@ -1,5 +1,6 @@ package org.ntlab.rdlcanvas.parser; +// Jsonを構成する値(String, Integer, Array, Json)の抽象クラス public abstract class Value { public abstract String toString();