我們有一個自定義C++模板引擎的網頁模板處理。讓我們說,我們有一個文件「的index.html」,內容如下:如何在模板引擎(預處理器)中模擬C邏輯和語法?
{% #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>
當模板引擎稱爲(初始化),它會掃描特定的「意見」文件夾中的所有文件。 「index.html」文件恰好在這個文件夾中。它被掃描並緩存在稱爲模板引擎的主程序的內存中。
當請求被創建時,模板引擎的操作函數被調用。該函數採用緩存代碼和陣列變量與他們的類型和值作爲參數,並返回恆定炭緩衝器與更新後的變量和邏輯運算的。爲了簡便起見,我們假定邏輯操作分別有{%...%}和變量{{...}}語法。
人們應該能夠使用C函數和通用邏輯中的標記語言。你甚至應該能夠在模板中定義函數。如果出現問題,變量或邏輯操作應該返回void。我們的最終結果與被稱爲「身體」「的index.html」網頁和「標題」爲變量{{體}}和{{title}}的分別應該是這樣的:
<!doctype html>
<html>
<head><title>title</title></head>
<body>
bodytesttest3test4test5
</body>
</html>
如何有人模仿C語言的邏輯和語法嗎?這可能嗎?您是否需要儘可能開發一個定製的語言操作和函數調用庫或者是否有更簡單的解決方案?實施這種解決方案的最佳方式是什麼?
這是瘋狂。 – blueshift 2012-03-21 10:38:28
@blueshifr - 瘋狂?這是斯巴達。 – user1254893 2012-03-21 10:58:31