У нас есть пользовательский C шаблонизатор для обработки веб-шаблонов.Допустим, у нас есть файл «index.html» со следующим содержимым:
{% #include <stdio.h> %}
<!doctype html>
<html>
<head><title>{{ title }}</title></head>
<body>
{{ body }}
{% printf("test"); %}
{% printf("test2") %}
{% printf("test3"); %}
{%
printf("test4");
printf("test5");
%}
{%
printf("test6");
printf("test7")
%}
{% printf("%d", isalpha('a')); %}
</body>
</html>
Когда механизм шаблонов вызывается (инициализируется), он сканирует все файлы в определенной папке «views».Файл index.html находится в этой папке.Он сканируется и кэшируется в памяти основной программы, которая вызвала механизм шаблонов.
Когда выполняется запрос , вызывается функция работы механизма шаблонов.Функция принимает кэшированный код и массив из переменных с их типами и значениями в качестве параметров, а возвращает постоянный символ буфер с обновленными переменными и логическими операциями.Для простоты предположим, что логические операции имеют синтаксис {{...}} , соответственно, {% ...%} .
Нужно уметь использовать функции C и общую логику на языке разметки.Вы даже должны быть в состоянии определить функции в шаблонах.Если что-то пойдет не так, переменная или логическая операция должны вернуть void .Конечный результат нашей названной страницы «index.html» с «body» и «title» в качестве переменных {{body}} и {{title}} соответственно должен выглядеть следующим образом:
<!doctype html>
<html>
<head><title>title</title></head>
<body>
bodytesttest3test4test5
</body>
</html>
Как можно эмулировать логику и синтаксис языка Си?Это возможно?Вам нужно зайти так далеко, чтобы разработать собственную библиотеку операций и вызовов языка или есть более простое решение?Каков наилучший способ реализации такого решения?