20.08.2013, 21:11 | #1 |
Участник
|
daxmusings: XLNT - A Most "Excellent" Framework for X++
Источник: https://community.dynamics.com/ax/b/...ork-for-x.aspx
============== Although demonstrated and praised quite a few times by Master Obi-Wan Villadsen and his team , the XLNT framework is still a little-known framework that contains a lot of power. So much so that the static...(read more) Источник: https://community.dynamics.com/ax/b/...ork-for-x.aspx
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору. |
|
21.08.2013, 08:59 | #2 |
Участник
|
э-э-э... может кто-нибудь разъяснит по-русски - что это?
что за хуки в компилятор? (hook into the X++ compiler to get the parsed code and run analysis and diagnostics) |
|
21.08.2013, 09:21 | #3 |
Участник
|
Никаких там хуков нету.
Цепляються 2 ДЛЛ которые делают примерно тоже что и X++ компилятор (наверное потому хуком назвал он) - разбирает текст-код на составляющие части. Если код не компилируется возвращает null, насколько я понимаю. Тоесть почему оно там не компилируется оно тебе не скажет Что с этим делать? Ну например лексическое сравнение кода (ссылка на английском и сщвсем не в тему аксапты). ЗЫ Парсер не без багов
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0 |
|
|
За это сообщение автора поблагодарили: mazzy (5). |
21.08.2013, 09:34 | #4 |
Участник
|
|
|
21.08.2013, 09:48 | #5 |
Участник
|
Метод из темы:
Код: Method method = multipassAdmin.CompileSingleMethod(sourceCode) as Method; Код: public abstract class MethodOrDelegate : CompilationUnit { // Methods protected MethodOrDelegate(); // Properties public AttributeList Attributes { get; internal set; } public IList<LocalDeclaration> Locals { get; internal set; } public string Name { get; internal set; } public IList<ParameterDeclaration> Parameters { get; internal set; } public IList<Statement> Statements { get; internal set; } public XppType Type { get; internal set; } } IList<LocalDeclaration> Locals - локальные переменные в твоем кода. IList<ParameterDeclaration> Parameters - параметры. IList<Statement> Statements - структура кода в методе. Например один из Statements может быть IF - Код: public class IfStmt : Statement { // Methods public IfStmt(); public override string ToString(int indent); // Properties public Expression Condition { get; internal set; } public Statement Consequent { get; internal set; } }
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0 |
|
|
За это сообщение автора поблагодарили: mazzy (5). |
21.08.2013, 10:45 | #6 |
Участник
|
Цитата:
- в аксапте, начиная с 4 версии нет такого класса (раьше был ParserClass, а ScannerClass - лексер и макропрепроцессор - есть и в 6.x) XLNT написан на C# и дублирует парсер X++ написанный на C++ внутри аксапты (а никакой не хук). Используется в CodeUpgrade. Последний раз редактировалось belugin; 21.08.2013 в 10:48. |
|
|
За это сообщение автора поблагодарили: mazzy (5). |
|
|