6.06.2016 / 15:42 | |
Helltar Пользователь Сейчас: Offline
Регистрация: 29.11.2011
| Морально.
Неплохо, продолжай.
|
6.06.2016 / 17:30 | |
MoteX Пользователь Сейчас: Offline
Имя: Матвей Откуда: Вяземский Регистрация: 14.10.2011
| Просто банальным тестом. Я по этому поводу написал документацию как по идее должно работать. Просто к примеру annimon действительно помог найти ошибки. Это ж и есть цель публикации |
6.06.2016 / 18:15 | |
DominaN Пользователь Сейчас: Offline
Имя: Кирилл Откуда: Смоленск Регистрация: 28.09.2011
| можно кроме принт добавить concat, вот моя реализация: private static final StringBuilder sb = new StringBuilder(64);
public static String concat(String... strings) {
sb.delete(0, sb.length());
for (String s : strings) sb.append(s);
return sb.toString();
}
public static String concat(Object... strings) {
sb.delete(0, sb.length());
for (Object s : strings) sb.append(String.valueOf(s));
return sb.toString();
}
|
6.06.2016 / 18:16 | |
aNNiMON Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| MoteX, aRiGaTo отчасти прав, тебе бы помогли гораздо лучше, если б ты рассказал, как у тебя реализовано. Велосипеды велосипедами, а на начальном этапе мудрый совет от знающего человека поможет избежать дальнейших проблем.
DominaN, конкатенация вроде есть. print("hello " & text)
MoteX, c нетерпением жду if и возможности получить символ из строки (ну и всякие indexOf, length, substring тоже приветствуются).
__________________
let live Изменено aNNiMON (6.06 / 18:20) (всего 2 раза) |
6.06.2016 / 18:20 | |
DominaN Пользователь Сейчас: Offline
Имя: Кирилл Откуда: Смоленск Регистрация: 28.09.2011
| Насчет кавычек - вангую та же проблема, когда я делал подсветку синтаксиса с помощью регэкспов. Строка бьется посередине лишней кавычкой и лексема херится. Там я так и не починил, но вообще рекомендую все строки перед исполнением парсить в массив final String[] и обращаться к ним по индексу. Ну а при парсинге строк проверять, не стоит ли перед кавычкой \ и если стоит то игнорировать это как конец литерала
|
6.06.2016 / 18:23 | |
DominaN Пользователь Сейчас: Offline
Имя: Кирилл Откуда: Смоленск Регистрация: 28.09.2011
| aNNiMON, а split string? public static String[] splitString(String str, String separator) {
final ArrayList<String> strings = new ArrayList<>();
int start = 0, end, skip = separator.length();
str = concat(str, separator);
while (start < str.length()) {
end = str.indexOf(separator, start);
strings.add(str.substring(start, end));
start = end + skip;
}
return strings.toArray(new String[strings.size()]);
}
|
6.06.2016 / 18:23 | |
aNNiMON Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| Парсить регулярками что-то сложнее калькулятора, простите, зашквар. И М Х О
__________________
let live |
6.06.2016 / 18:25 | |
DominaN Пользователь Сейчас: Offline
Имя: Кирилл Откуда: Смоленск Регистрация: 28.09.2011
| |
6.06.2016 / 18:51 | |
aRiGaTo Пользователь Сейчас: Offline
Имя: Snork Откуда: Yerevan Регистрация: 03.02.2010
| DominaN, у регулярок есть одна проблема - они регулярные. Конечно, расширенные RE уже классом повыше и, вполне возможно, ими можно разобрать контекстно-свободные языки. А вот остальные под вопросом. Но, даже если и можно, такое выражение превратится в монстра. Чего можно избежать, используя более подходящий инструмент. Грамматики, конечно же. __________________
don't tread on me Изменено aRiGaTo (6.06 / 18:56) (всего 2 раза) |
8.06.2016 / 05:51 | |
MoteX Пользователь Сейчас: Offline
Имя: Матвей Откуда: Вяземский Регистрация: 14.10.2011
| Многие вещи я уже реализовал. В том числе и условия. К сожалению идею придется пока убрать в долгий ящик. Есть другие проекты, требующие внимания. Всем спасибо Иногда может и буду попиливать, но это врядли |