Я пытаюсь проанализировать текстовый файл, который представляет грамматику для использования в парсере рекурсивного спуска.Текстовый файл будет выглядеть примерно так:
SPRIME :: = Expr eof
Expr :: = Term Expr '
Expr' :: = + Term Expr '|- Срок Экспр '|e
Чтобы изолировать левую часть и разделить правую часть на отдельные производственные правила, я беру каждую строку и вызываю:
String[] firstSplit = line.split("::=");
String LHS = firstSplit[0];
String productionRules = firstSplit[1].split("|");
Однако, когда я вызываю второй метод разделения,Мне не возвращен массив строк, разделенных "|"символ, но массив каждого индивидуального символа на правой стороне, включая «|».Например, если бы я разбирал правило Expr и печатал массив productionRules, он выглядел бы так:
"+"
"Term"
"Expr '"
""
" | "
Когда то, что я действительно хочу, должно выглядеть следующим образом:
У кого-нибудь есть идеи, что яя делаю неправильно?