Zexpression Syntax Compiler + интерпретатор, ядро двигателя скрипта
Техническая система Объяснение:
- В технической системе принципа компиляции предварительная обработка требуется перед обработкой текстового кода. Синтаксис и синтаксический сахар, о котором мы часто говорим, являются программами предварительной обработки
- Лексический метод: лексический метод состоит в том, чтобы классифицировать ключевые слова, цифры и символы текста, и, наконец, сформировать лексическое дерево и строго следовать принципу последовательной обработки.
- Заявление: В коде предварительной обработки часть декларации называется Дерево объявления. Дерево объявлений также опирается на лексическую последовательную предварительную обработку, потому что лексическая предварительная обработка является упрощенным методом.
- Синтаксис: после предварительной обработки объявления он обрабатывает однострочные логические операции выражений кода. Этот шаг называется синтаксисом. Он принимается в виде компилятора Zexpression Syntax. Это решение, которое я намеренно лишил компилятора, которого я когда -то написал. Его можно распространять и использовать независимо и может использоваться практически для цифровой предварительной обработки, графических изображений, научных вычислений и других областей, а также может использоваться в качестве средства для обучения для улучшения.
Основная идея
- Реализация ZexPression принимает принцип сложности одноранговых и написанных для решения задач компилятора. Сложность намного выше, чем у обычных программ. Поскольку он решает окончательную проблему, в структуре именования и кучи кода нет уязвимостей, поэтому это зрелое синтаксическое решение интерпретатора.
Особенности Zexpression
- Полная операция распыления с одной шагом
- Полный приоритет символа после обработки
- Может предварительно обрабатывать буквальные ошибки и обратную связь, где возникает ошибка
- Натуральный метод написания чисел, который может идентифицировать плавучие точки и целые числа
- Поддержка функций вызовов
- Поддержка индивидуального синтаксиса скрипта
- Обратная обработка приоритетов символа 2,0 Польши 2.0
- Поддерживает модели мобильных телефонов Android и Apple
- Полная функциональная демонстрация, полная производительность и структура оценки точности
- После компиляции можно сформировать атомированный OP -код, который можно загрузить и работать на высокой скорости через поток без ограничения типа ЦП
- Структура кода OP может быть легко декодирована в машинные коды для ARMV7 ARMX64 X64 X86 и других платформ
- Поддержка матрицы и векторного выражения
Поддержка платформы, тест с Delphi 10.3 Обновление 2 и FPC 3.0.4
- Windows: Delphi-CrossSocket (C/S OK), Delphi-Diocp (C/S OK), Delphi-ICS (C/S OK), Delphi-Indy (C/S OK), Delphi+FPC Synapse (C/S OK)
- Android: Indy (C/S OK), CrossSocket (только клиент)
- Устройство iOS: Indy (C/S OK), CrossSocket (только клиент)
- Ios simulaor: n/a
- OSX: Indy (C/S OK), ICS (не проверено), CrossSocket (C/S OK)
- Ubuntu16.04 x64 Server: Indy (C/S OK), CrossSocket (C/S OK)
- Ubuntu18.04 x86+x64.
- Ubuntu18.04 x86+x64 Server: только FPC3.0.4 Synapse (C/S OK)
- Ubuntu18.04 ARM32+ARM NEON SERVER: только FPC3.0.4 Synapse (C/S OK)
- Ubuntu18.04 ARM32+ARM NEON Desktop: только FPC3.0.4 Compile OK, без тестирования при запуске.
- Ubuntu16.04 Mate Arm32.
- Raspberry Pi 3 Debian Linux ARMV7, только FPC 3.0.4, прошел тест.
- Wince (Arm Eatbi Hard Flat), Windows 10 IoT, только FPC 3.3.1, прошел тест.
Поддержка архитектуры процессора, тест с Delphi 10.3 Update 2 и FPC 3.0.4
- MIPS (FPC-Little Endian), Soft Float, Test Pass на Qemu
- Intel X86 (FPC-X86), мягкий поплавок
- Intel X86 (Delphi+FPC), Hard Float, 80386, Pentium, Pentium2, Pentium3, Pentium4, Pentiumm, Corei, Coreavx, Coreavx2
- Intel X64 (FPC-X86_64), Soft Float
- Intel X64 (Delphi+FPC), Hard Float, Athlon64, Corei, Coreavx, Coreavx2
- ARM (FPC-ARM32-EABI, мягкий поплавок): ARMV3, ARMV4, ARMV4T, ARMV5, ARMV5T, ARMV5TE, ARMV5TEJ
- ARM (FPC-ARM32-EABI, жесткий поплавок): ARMV6, ARMV6K, ARMV6T2, ARMV6Z, ARMV6M, ARMV7, ARMV7A, ARMV7R, ARMV7M, ARMV7EM
- ARM (FPC-ARM64-EABI, Hard Float): ARMV8, AARCH64
Обновление журнала
2021-9-22
- Библиотека NumberBase имеет встроенный драйвер ZexPression. Для получения подробной информации, пожалуйста, обратитесь к службе сетевой переменной Zcloud https://github.com/passbyyou888/zcloud
- Исправлена проблема, в которой Opcache не был инициализирован
- Оптимизировать Opruntime
- Поддержка Delphi 11
- Поддержка FPC для устройств IoT
2021-7
- Фиксированные проблемы распознавания, такие как выражение символов-2.0e-3
- Исправлена библиотека opcode.pas из -за чувствительности к случаю и несовместимо с Win/Linux
2020-3
- Добавлена информация об декларации в функцию регистрации
- Исправьте символ предварительного функция -func (1+1)
- Исправлены фонарь символа (1+1) -1 после функции
2019-7
Поддержка выражения матрицы
// 构建3*3的variant矩阵,使用c语法表达式
procedure MatrixExp ;
var
m: TExpressionValueMatrix;
begin
DoStatus( ' ' );
m := EvaluateExpressionMatrix( 3 , 3 ,
' "hello"+"-baby"/*备注:字符串联合*/,true,false, ' +
' 1+1,2+2,3+3, ' +
' 4*4,4*5,4*6 ' , tsC);
DoStatus(m);
end ;
// 构建variant向量数组,使用pascal语法表达式
procedure MatrixVec ;
var
v: TExpressionValueVector;
begin
DoStatus( ' ' );
v := EvaluateExpressionVector( ' 0.1*(0.1+max(0.15,0.11)){备注内容},1,2,3,4,5,6,7,8,9 ' , tsPascal);
DoStatus(v);
end ; 2019-4
- Исправлена ошибка после кодирования заметок TextParsing
- Opcode добавляет тип обратного вызова (см. Поддержку сценария в Zai Toolchain)
2018-9-29
- Новая технология: Добавленная технология текстового зонда: может снизить сложность программирования программ ANT на 50%.
- Новая технология: характер за характером текстовой текстовой персонаж Ползание, улучшает %500
- Multi-Platform: полностью поддержка нескольких систем IoT и многопроцессорных аппаратных архитектур
- Новая демонстрация: добавлена новая демонстрация FPC, которая не использует анонимные функции
- Процесс: совместим с поддержкой IoT на основе FPC: от базового до расширенного, крупномасштабного объединенного именования корректируется и называет. Эта корректировка повлияет на детали кода многих проектов.
// 本项目中的回调分为3种
// call: 直接指针回调,fpc+delphi有效
// method: 方法回调,会继承一个方法宿主的地址,fpc+delphi有效
// proc: 匿名过程回调,只有delphi有效
// 如果本项调整对于改造现有工程有一定的工作量,请使用字符串批量处理工具
// 在任何有回调重载的地方,方法与函数,均需要在后缀曾加回调类型首字母说明
// 如
RunOp 变更为 RunOpP() // 后缀加P表示匿名类型回调
RunOp 变更为 RunOpM() // 后缀加M表示方法类型的回调
RunOp 变更为 RunOpC() // 后缀加C表示指针类型的回调
2018-7-6
- Значительно исправить правила именования базовой библиотеки
- Поддерживает платформу FPC/86/64, и все основные библиотеки поддерживают бесплатный компиляцию и работу в рамках Linux.
- Полная поддержка компилятора FPC 3.1.1
- Добавленный размер и поддержка эндского
- Исправлена проблема не отказ от использования Int64 для 32-битного компилятора FPC
- Исправлена проблема исключений в строках, работающих на Linux, когда компилятор FPC
- Добавлен инструмент предварительного спуска Pascal для стандартизации кода Pascal в C-стиле CALL All Unified Case, который полностью совместим с механизмом имен файлов Linux.
2018-4-12
- Исправлена ошибка в ядре, исправившую ошибку памяти: симптом этой ошибки заключается в том, что она недоступна без причины, и ее трудно устранить посредством обычной отладки. Это ошибка, вызванная памятью вне борьбы.
2018-3-1
- Добавлена нечеткая функция сравнения строк (Smithwaterman) в ядро TpascalString, оптимизация и тестирование завершаются
- Этот алгоритм принадлежит к Википедии Адрес Смит-Уэтермана, дисциплины биологической геновой инженерии. https://en.wikipedia.org/wiki/smith%E2%80%93waterman_algorithm
2018-2-28
- Fix C Ascape Permance Buf, благодаря AMU QQ345148965
- Измените именование параметров Charpos на коф и добавить модификатор Const
2018-2-26
- Исправлена проблема с тем, чтобы не иметь возможности компилировать с помощью режима освобождения
- Исправлена проблема неправильной резки и сегментации в Zexpression
- Немного улучшить характеристики характерных зондов (Splittoken, Splitchar)
- Поскольку базовый слой переписывает атомную блокировку, упакованный модификатор добавляется перед многими записными объявлениями
2018-2-25
- Добавлена пользовательская поддержка символа выражения
- Новая демонстрация символов индивидуальных выражений
2018-2-25
- Исправлена задача о том, что вложенные параметры функции не могут правильно расширить интерфейс
- Исправлена проблема, которую цифровой зонд механизма не может распознать шестнадцатеричные натуральные числа и функции
- Добавлен новый демонстрационный пример для назначения, включая объявление переменных, статическое мультиплексирование, динамическое мультиплексирование, общее количество трилогий. Пожалуйста, изучите это самостоятельно в примере демонстрации.
- Исправлена проблема сочетания строк и сопоставления номеров
- Поддерживает C-код в стиле 0x16-цифр
2018-2-6
- Перепишите ядро анализатора один раз, поддерживает функциональные вызовы, и с этого момента Zexpression будет непрерывно обновляться
Если у вас есть какие -либо вопросы об использовании ZexPression, добавьте Mutual Aid QQ Group 490269542, пожалуйста, не свяжитесь с автором напрямую напрямую
by.qq600585 2017-6