Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Есть язык UnrealScript (он же UScript) - используемый в играх семейства Unreal Turnament. Вот его описание http://wiki.beyondunreal.com/UnrealScript (там можно выйти и на спецификацию) - он похож на яваскрипт, но у него очень очень много синтаксических наворотов.

Нужно написать что-то типа парсера-лексера, который на каждый входной файл на UScript выдает про каждую лексему ее вид в выходной текстовый файл. Например, для фрагмента кода:

// called immediately after spawning the roster class

function Initialize(int TeamBots)

{

local GameProfile GP;

local int i, j;

GP = Level.Game.CurrentGameProfile;

Log("DMRosterBeatTeam::Initialized() failed. GameProfile == none.");

}

выплевывала что-то типа

comment: // called immediately after spawning the roster class

keyword: function

ident: Initialize

punct:(

ident:int

ident:TeamBots

punct:{

keyword:local

ident:GameProfile

ident:GP

punct:;

keyword:local

ident:int

ident:i

punct:,

ident:j

punct:;

ident:GP

punct:=

ident:Level

punct:.

ident:Game

punct:.

ident:CurrentGameProfile

punct:;

ident:Log

punct:(

string:"DMRosterBeatTeam::Initialized() failed. GameProfile == none."

punct:)

punct:;

punct:}

punct:}

- чтобы они шли в порядке, в каком идут в файле.

На каком языке оно будет написано - практически не важно.

Интерфейс - коммандной строки (никакого GUi не надо).

Чтобы могла обрабатывать несколько файлов за раз, используя такие параметры коммандной строки: [входнойфайл1] [выходнойфайл1] [входнойфайл2] [выходнойфайл2] ..

Подводные камни: для классов, переменных и язык допускает очень много видов модификаторов - см например http://wiki.beyondunreal.com/Classes

Программа не должна нарушать чужие лицензии (например, содержать в сырцах куски GPL кода, хотя линковаться в LGPL библиотеками - можно).

В заявке обязательно указывать стоимость и срок!

12 лет назад
vh213
45 летРоссия
16 лет в сервисе
Был
8 лет назад