...
//string text = System.IO.File.ReadAllText(@"c:\dev\antlr4\grammars-v4-master\tsql\examples\dml_select.sql");
//StringReader reader = new StringReader(text);
//// В качестве входного потока символов устанавливаем ...
//AntlrInputStream input = new AntlrInputStream(reader);
// Настраиваем лексер на этот поток
TSqlLexer lexer = new TSqlLexer(new CaseChangingCharStream(new AntlrFileStream(@"c:\dev\antlr4\grammars-v4-master\tsql\examples\dml_select1.sql"), true));//(input);
...
Хабр мне ответил) Как успешно научить себя программировать
Я много лет была наставником и часто слышала от своих подопечных, что им не хватает мотивации. Они фокусировались на крупной цели, игнорируя свои небольшие, но все же очень важные улучшения. Поэтому им казалось, что они никуда не движутся.
Хотя я знала, как важно помнить об этом при получении какого-то нового умения, я сама попала в эту ловушку, когда начинала. Я не чувствовала какого-либо прогресса и думала, что все вокруг меня всё равно остаются на голову выше. Мне казалось, что я никогда не достигну их уровня.
Эти мысли мешали осознать, как много важных шагов мне уже удалось сделать. При этом я писала код с первого раза, и создавала всё более сложные приложения. Продолжая сравнивать себя с другими, более опытными людьми, я не могла увидеть свой прогресс. И всё, о чем я могла думать: «я всё еще так далека от своей цели».
Так были ответы на вопросы:
какие минимальные условия для атаки через сеть?
какое время для получения полезной инфы с взламываемого компа?
и только ли крадется инфа или можно еще нанести какой-то вред?
Вы говорите примерно следующее,
«жалко, что молоток сам не выпрямляет гнутые гвозди», но молоток не был для этого предназначен. Инструмент на 100% рабочий. То что нужно детерминировать процедуры с динамическим кодом(которого думаю небольшой процент) и поставить заглушки и получить статический код и обработать его отдельно, я не вижу проблемы. Грамматику дописать? Конечно, и тут надо поработать, изучить как пишутся правила и т.д. Но, елки, ты ж программист.
Удачи.
Та, все это ерунда.
Вот когда у человека есть мечта в опенсурсе,
а день за днем жисть преподносит сюрпризы
проходят уже не месяцы, а годы, а сдвигов нет — обидно
а до остальных ваще все-равно
их право заниматься чем угодно
тем более, что нагрузки бывают бешенные не только по работе
в наши дни порой сваливается такой вал информации, что башка может лопнуть
и тут уж лучше отдыхать сменив сферу деятельности
Если я Вас правильно понял, то
достаточно просто повнимательнее взглянуть на грамматику — там иерархия выражений. Если не хватает чего-то в грамматике, то надо дописать в ней. Обрабатываем только нужные нам узлы. Методы именуются так же как выражения в грамматике + префикс «Enter» в начале.
Проще самому потестировать этот код и поудалять мешающие return.
Чтобы обход дерева был более наглядным можно вставлять в методы код обхода дочерних узлов
for (ii = 0; ii < ctx.ChildCount; ++ii)
{
Console.WriteLine("ii=" + ii.ToString());
Console.WriteLine(ctx.GetChild(ii).GetType().ToString());
Console.WriteLine(ctx.GetChild(ii).GetText());
}
тов. KvanTTT поправил меня, тезис «как оказалось он(Visitor) чаще используется для постоянно изменяемого кода, в котором могут быть синтаксические ошибки»,
Listener тоже так используется(а может использовался). Я ж говорю, подзабыл, сам видел в исходниках NetBeans. Обязательно рассмотрю реализацию в NetBeans. Надеюсь статья не последняя.
CaseChangingCharStream.cs на github
Program.cs:
Спасибо тов. KvanTTT
А то я уж подумал, ща все JS-девелоперы меня хакнут ))
как клево, что мне попалась эта статья
просто клева и девчонка ничего
райфазенбанк рулит ))
Как успешно научить себя программировать
Я много лет была наставником и часто слышала от своих подопечных, что им не хватает мотивации. Они фокусировались на крупной цели, игнорируя свои небольшие, но все же очень важные улучшения. Поэтому им казалось, что они никуда не движутся.
Хотя я знала, как важно помнить об этом при получении какого-то нового умения, я сама попала в эту ловушку, когда начинала. Я не чувствовала какого-либо прогресса и думала, что все вокруг меня всё равно остаются на голову выше. Мне казалось, что я никогда не достигну их уровня.
Эти мысли мешали осознать, как много важных шагов мне уже удалось сделать. При этом я писала код с первого раза, и создавала всё более сложные приложения. Продолжая сравнивать себя с другими, более опытными людьми, я не могла увидеть свой прогресс. И всё, о чем я могла думать: «я всё еще так далека от своей цели».
:/
какие минимальные условия для атаки через сеть?
какое время для получения полезной инфы с взламываемого компа?
и только ли крадется инфа или можно еще нанести какой-то вред?
Ну можно предположить, что у больших организаций была возможность разработать механизмы взлома, но не всего и вся.
у меня ж не win xp без патчей
«жалко, что молоток сам не выпрямляет гнутые гвозди», но молоток не был для этого предназначен. Инструмент на 100% рабочий. То что нужно детерминировать процедуры с динамическим кодом(которого думаю небольшой процент) и поставить заглушки и получить статический код и обработать его отдельно, я не вижу проблемы. Грамматику дописать? Конечно, и тут надо поработать, изучить как пишутся правила и т.д. Но, елки, ты ж программист.
Удачи.
mathhelpplanet.com
Вот когда у человека есть мечта в опенсурсе,
а день за днем жисть преподносит сюрпризы
проходят уже не месяцы, а годы, а сдвигов нет — обидно
а до остальных ваще все-равно
их право заниматься чем угодно
тем более, что нагрузки бывают бешенные не только по работе
в наши дни порой сваливается такой вал информации, что башка может лопнуть
и тут уж лучше отдыхать сменив сферу деятельности
лежит книга по предыдущей версии ATNLR от Terence Parr — «The Definitive ANTLR Reference»
достаточно просто повнимательнее взглянуть на грамматику — там иерархия выражений. Если не хватает чего-то в грамматике, то надо дописать в ней. Обрабатываем только нужные нам узлы. Методы именуются так же как выражения в грамматике + префикс «Enter» в начале.
Проще самому потестировать этот код и поудалять мешающие return.
Чтобы обход дерева был более наглядным можно вставлять в методы код обхода дочерних узлов
Listener тоже так используется(а может использовался). Я ж говорю, подзабыл, сам видел в исходниках NetBeans. Обязательно рассмотрю реализацию в NetBeans. Надеюсь статья не последняя.
не с моей дислексией
поищу курс для полных идиотов на ютюб
спасибо
;o)