MiiNiPaa: непонятно одно: зачем "прямо сейчас"?
Да, если не "прямо сейчас", то будет серьезный недостаток: такое будет тормозить, если его применить в штуках вроде IntelliSense (кстати, как такие штуки назвать "по-научному"?)
Но что если мы не собираемся пока делать такое? Если просто для компиляции-интерпретации, то сойдет и не "прямо сейчас", ИМХО
Спасибо и на том, но я не в реальных исходниках ковыряться хотел бы, пусть они даже и "stupid"... И язык D - слабо понятный для меня. Хотя в глаза его и видел, но писать ессно ничего реального не писал.
Спс, видимо, вы разбираетесь)
Я знаю, что такое BNF. Но это, так сказать, теория.
А на практике-то какой алгоритм применять для такого и в чем отличие от описанного? Только обход в разные стороны?
И почему так не распарсить goto? Я не вижу проблем.
"Абстрактное синтаксическое дерево" тоже ничего для меня не значит. В дерево бинарное - парсятся и JSON и XML. Дерево и дерево.
Используется принцип флагов, т.е. как только прошли "{" или """, то в переменной меняется значение из enum и начиная со следующего символа мы его учитываем.
Это тоже подходит под мою "теорию" "местоположения".
Перечисление (enum) будет выглядеть как-то так:
1) вне элемента
2) в элементе
3) в ключе
4) после ключа (здесь ищем ":")
5) в значении
6) после значения (ищем "," либо "}")
Это как минимум.
Разумеется, для полноценной поддержки JSON и enum будет длиннее и алгоритм "раскидистее", и вообще все сложнее.
Александр А: И любая кросспл. библиотека именно использует API ОС: на одной ОС одни, на другой другие. Как она может их не использовать? Бред написали.
Роман: На уровень выше - нет. А вообще - есть. Потому я и не ставлю WF на уровень выше, но ставлю вровень.
А на уровень выше - может претендовать, например, Telerik, DevExpress.
Тренажер для заучивания тэгов наизусть?
Бред. Для этого есть гугл, в него можно и описание ввести и полчить ответ, и наоборот тоже.
А разраб должен иметь навыки и опыт использования разных тэгов. Он же разраб, а не живой дата-центр гугла. А для этого - кэпом буду - надо их использовать.
Roman Kitaev: с чего бы? Чувствую, что нужно руководствоваться не "общностью", а тем, под какую платформу язык заточен лучше.
Пиша кроссплатформенное приложение, всегда надо помнить, что оно будет хорошо только для самой примитивной из всех поддерживаемых ОС.
Отсюда делать выводы.
Roman Kitaev: не только не просто, но и хуже получается. Qt все же тоже заточен под линукс. Важные виндовые преимущества в нем не реализованы, зато есть свистоперделки вроде Aero Wizard.
В нем заметно меньше контролов, чем в Winforms.
Роман: Я не называю WinForms заброшенным в полном смысле слова, т.к. есть сторонние решения - Telerik, DevExpress... А еще я для себя кое-что пишу... И фичи там есть такие, каких и в UWP нет. Говорю это без всякой гордости. Это нормальная практика для опытного разраба. Со временем это уже будет вернее называть не "опытом", а английским словом "experience". Разница в том, что "experience" можно "продать" в виде библиотек.
Эрик Филлер: что угодно - большое преувеличение.
Скажем, для винды гораздо лучше C#.
Для Android - Java.
Python - для сайтов, либо кроссплатформенных (Windows/Linux) утилит без GUI.