本文整理汇总了Java中org.kaivos.nept.parser.TokenList.accept方法的典型用法代码示例。如果您正苦于以下问题:Java TokenList.accept方法的具体用法?Java TokenList.accept怎么用?Java TokenList.accept使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.kaivos.nept.parser.TokenList
的用法示例。
在下文中一共展示了TokenList.accept方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: parseMap
import org.kaivos.nept.parser.TokenList; //导入方法依赖的package包/类
private static JSONMap parseMap(TokenList tl, Stack<JSONKey> path) {
Map<JSONKeyString, JSONElement> map = new HashMap<>();
tl.accept("{");
int i = 0;
while (!tl.isNext("}")) {
if (i != 0) tl.accept(",");
tl.accept("\"");
JSONKeyString key = new JSONKeyString(tl.nextString());
tl.accept("\"");
tl.accept(":");
path.push(key);
map.put(key, parse(tl, path));
path.pop();
i++;
}
tl.accept("}");
return new JSONMap(new ArrayList<>(path), map);
}
示例2: proceed
import org.kaivos.nept.parser.TokenList; //导入方法依赖的package包/类
@Override
public void proceed(@NonNull TokenList tl, @NonNull FortobEnvironment env) {
env.putLocal("?", tokenListObj(tl, env));
if (tl.isNext("\\")) {
tl.accept("\\");
return;
}
while (tl.hasNext() ? commandMap.containsKey(tl.seekString()) : false) {
proceedOnce(tl, env);
if (tl.isNext("\\")) {
tl.accept("\\");
break;
}
}
}
示例3: acceptIfNext
import org.kaivos.nept.parser.TokenList; //导入方法依赖的package包/类
private static boolean acceptIfNext(TokenList tl, String... keywords) {
if (isNext(tl, keywords)) {
skipNewlines(tl);
tl.accept(keywords);
return true;
}
return false;
}
示例4: parse
import org.kaivos.nept.parser.TokenList; //导入方法依赖的package包/类
private static JSONElement parse(TokenList tl, Stack<JSONKey> path) {
if (tl.isNext("[")) {
return parseList(tl, path);
}
if (tl.isNext("{")) {
return parseMap(tl, path);
}
if (tl.isNext("\"")) {
tl.accept("\"");
String text = tl.nextString();
tl.accept("\"");
return new JSONString(new ArrayList<>(path), text);
}
if (tl.seekString().matches("-?[0-9]+")) {
long integer = Long.parseLong(tl.nextString());
return new JSONInteger(new ArrayList<>(path), integer);
}
if (tl.seekString().matches(NUMBER_REGEX)) {
double doubling = Double.parseDouble(tl.nextString());
return new JSONDouble(new ArrayList<>(path), doubling);
}
for (JSONConstants constant : JSONConstants.values()) {
if (tl.seekString().equals(constant.getName())) {
tl.next();
return new JSONConstant(new ArrayList<>(path), constant);
}
}
throw new ParsingException(TokenList.expected("[", "{", "true", "false", "null", "<number>", "<string>"), tl.next());
}
示例5: parseList
import org.kaivos.nept.parser.TokenList; //导入方法依赖的package包/类
private static JSONList parseList(TokenList tl, Stack<JSONKey> path) {
List<JSONElement> list = new ArrayList<>();
tl.accept("[");
int i = 0;
while (!tl.isNext("]")) {
if (i != 0) tl.accept(",");
path.push(new JSONKeyInteger(i));
list.add(parse(tl, path));
path.pop();
i++;
}
tl.accept("]");
return new JSONList(new ArrayList<>(path), list);
}
示例6: parsePrimary
import org.kaivos.nept.parser.TokenList; //导入方法依赖的package包/类
private int parsePrimary(TokenList tl) {
if (tl.isNext("-")) {
tl.accept("-");
return -parsePrimary(tl);
}
if (tl.isNext("(")) {
tl.accept("(");
int i = parseExpression(tl);
tl.accept(")");
return i;
}
else return Integer.parseInt(tl.nextString());
}
示例7: accept
import org.kaivos.nept.parser.TokenList; //导入方法依赖的package包/类
private static void accept(TokenList tl, String... keywords) {
skipNewlines(tl);
tl.accept(keywords);
}