Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопрос про парсер. 
:(
    Опции темы
compaq
Дата 28.5.2011, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 78
Регистрация: 20.11.2006

Репутация: нет
Всего: нет



Доброго времени суток.
Мне нужно сделать подобие CodeSmith.
В нашёл вот такую статью в принципе всё понятно за исключением одной веши.
К примеру
Код

using System;
namespace HelloWorld
{
    class Hello 
    {
        static void Main() 
        {
            <% int x = 2 + 2; %>
            Console.WriteLine(<%= x%>);
        }
    }
}

Допустим я сделал шаблон, вставил в него разметку для парсера, запустил парсер извлёк с помощью регулярных выражений нужную разметку
но как быть с таким фрагментом <% int x = 2 + 2; %> этот код должен выполниться во время работы парсера над текстом. Я имею в виду что я хочу получить результат выражения а не само выражение.
То есть в результате работы парсера я хочу получить вот такой шаблон.
Код

using System;
namespace HelloWorld
{
    class Hello 
    {
        static void Main() 
        {
            Console.WriteLine(4);
        }
    }

Вопрос с помошью чего это можно реализовать?
PM MAIL   Вверх
jonie
Дата 28.5.2011, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 22
Всего: 118



рук?) Для того чтобы это сделать нужен почти полноценный компилятор (ну как минимум лексический, синтаксический парсер и дерево строить надо + язык описать).

Если вам надо своё - тогда вперед  читать курс лекций про Теорию комиляторов (и соотвествующую литературу).

Я думаю вам будет достаточно простого ASP.NET или TT шаблонов или Razor (это что уже готовое в .NET есть) - любой из них можно использовать без поднятия всяких веб серверов (например в консольном приложении)

Это сообщение отредактировал(а) jonie - 28.5.2011, 10:50


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0615 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.