LINUX.ORG.RU

Посоветуйте ЯП со следующим синтаксисом, который можно встраивать в свои приложения?


0

1

Динамически типизирован. Есть объекты, функции, строки, инты, даблы.
Встроен или очень облегчён парсенг HTML с выдиранием из него переменных. Например я хочу выдернуть все текстовые строки из указанной колонки таблицы внутри HTML или всю таблицу. При этом в нашем языке пускай появляется объект типа Table, у которого есть наименования колонок и адреса строк (в примере функция «tt» возвращает объект-таблицу).
Встроен многопоточный HTTP-клиент, которым можно качать страницы.

В примере функция parse грузит страницу, получает из неё таблицу (как она адресует таблицу внутри HTML тут не показано), удаляет колонку с именем «column», перебирает 255 ячеек колонки «columnname» и если в ячейке пусто, запихивает туда строку, возвращаемую функцией calc.

Ещё одно требование - чтобы интерпретатор такого языка можно было вкомпилить в приложение на C++ или заюзать в виде библиотеки.

Ну... и кросс-платформенность интерпретатора.

main()
{
	parse("http://google.com/");
	parse("http://yandex.ru/");
}

parse(URL)
{
	html = download(URL);

	// tt возвращает таблицу. Таблица - набор строк. Каждая колонка имеет имя.
	// Объект-таблица никак не относится к HTML и может быть сформирована искусственно.
	// Главное, что у таблицы есть указанные в первой строке данного коммента свойства.
	table = tt(html, ttdata);
	table.remove(["column"]);

	for ( i = 0; i < 255; ++i )
	{
		x = table["columnname", i]; // may be false.
		if ( ! x ) // if this cell DOES NOT exist in table.
		{
			table["columnname", i] = calc( i, i*2 );
		}
	}
	
}

calc(x, y)
{
	p = "X=" + x + ", Y=" + y;
	return p;
}
★☆

Последнее исправление: kiverattes (всего исправлений: 2)

Ответ на: комментарий от kiverattes

> Встроен или очень облегчён парсенг HTML с выдиранием из него переменных.

А это что?

Rzhepish
()

В твоем примере нет одного важного момента: функция parse не возвращает результата.

baverman ★★★
()

И таки да. Про rowspan/colspan ты, видимо, не слышал.

baverman ★★★
()

Динамически типизирован. Есть объекты, функции, строки, инты, даблы.

Корованы грабить можно?

ratatosk
()

Ещё одно требование - чтобы интерпретатор такого языка можно было вкомпилить в приложение на C++ или заюзать в виде библиотеки.

Ну... и кросс-платформенность интерпретатора.

почему-то все об Tcl (http://www.tcl.tk) забывают.

gensym ★★
()

lua уже советовали?

ну и perl, конечно же.

DELIRIUM ☆☆☆☆☆
()

Ответ конечно оригинален, но... perl!

bjorn
()

Неужели ITT ещё не было упоротого Лавсанчика с вбросом «LISP + DSL»?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.