ПО, ЭВМ и АСУ из Таможенного Союза

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



Как русифицировать tcc?

Сообщений 1 страница 8 из 8

1

Установить tcc несложно, так как он есть в пакетном менеджере.
А как его русифицировать? Это уже проделанная работа или абстрактное предложение?

Код:
/usr
/usr/bin
/usr/bin/tcc
/usr/include
/usr/include/libtcc.h
/usr/lib
/usr/lib/debug
/usr/lib/debug/usr
/usr/lib/debug/usr/bin
/usr/lib/debug/usr/bin/tcc.debug
/usr/lib64
/usr/lib64/libtcc.a
/usr/lib64/tcc
/usr/lib64/tcc/include
/usr/lib64/tcc/include/float.h
/usr/lib64/tcc/include/stdarg.h
/usr/lib64/tcc/include/stdbool.h
/usr/lib64/tcc/include/stddef.h
/usr/lib64/tcc/include/tcclib.h
/usr/lib64/tcc/include/varargs.h
/usr/lib64/tcc/libtcc1.a
/usr/share
/usr/share/doc
/usr/share/doc/tcc-0.9.27
/usr/share/doc/tcc-0.9.27/Changelog.bz2
/usr/share/doc/tcc-0.9.27/README.bz2
/usr/share/doc/tcc-0.9.27/TODO.bz2
/usr/share/doc/tcc-0.9.27/VERSION
/usr/share/doc/tcc-0.9.27/examples
/usr/share/doc/tcc-0.9.27/examples/ex1.c
/usr/share/doc/tcc-0.9.27/examples/ex2.c.bz2
/usr/share/doc/tcc-0.9.27/examples/ex3.c.bz2
/usr/share/doc/tcc-0.9.27/examples/ex4.c.bz2
/usr/share/doc/tcc-0.9.27/examples/ex5.c
/usr/share/doc/tcc-0.9.27/tcc-doc.html
/usr/share/info
/usr/share/info/tcc-doc.info.bz2
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/tcc.1.bz2

Почему tcc, а не lua? Потому что уровень нужно повышать постепенно, а в lua и в js нужна сборка мусора (реализовать её сложнее, чем обходиться без неё). Поэтому сначала имеет смысл сделать машкод, потом ассемблер, потом С-подобный язык, потом язык со сборкой мусора. И уже после всего этого приступать к творчеству (прикручивать вывод типов, шаблоны и т.п.)

Юрий рекомендует использовать:
Native to ansi C/C++ preprocessor v1.0, на там внутри архива .exe-шник, не годится.
собственная утилита Юрия
так же является .exe-файлом (cpp-rus.exe) в архиве.

Содержимое .csv-файла Юрия, в котором разделителем является вовсе не "comma", а "semicolon" (';'):

_15

short

_16

unsigned  short

_31

int

_32

unsigned  int

_7

char

_8

unsigned  char

__ВРЕМЯ__

__TIME__

__СТАНДСИ__

__STDC__

__СТДСИ__

__STDC__

__СТРОКА__

__LINE__

__ФАЙЛ__

__FILE__

__сиплюсплюс

__cplusplus

~

@

автом

auto

автоматич

auto

без

unsigned

беззн

unsigned

беззнак

unsigned

вар

case

вариант

case

вернуть

return

вирт

virtual

виртуал

virtual

виртуальный

virtual

внеш

extern

внешний

extern

возврат

return

всем

public

вставка

include

выбор

switch

выйти

break

да

true

двойн

double

двойной

double

длин

long

длинный

long

для

for

доступ

public

доступно

public

доступный

public

друг

friend

друж

friend

если

if

если есть

ifdef

если нет

ifndef

если_есть

ifdef

если_нет

ifndef

есть

defined

заново

continue

защ

protected

защищ

protected

знак

signed

знаков

signed

знаковый

signed

и если

elif

и_если

elif

измен

mutable

изменч

mutable

иначе

else

иначе если

elif

иначе_если

elif

искл

throw

исключ

throw

исключение

throw

исп

using

использ

using

использовать

using

истина

true

к если

endif

к_если

endif

класс

class

конец если

endif

конец_если

endif

конст

const

контроль

try

кор

short

корот

short

короткий

short

лог

bool

логич

bool

ложь

false

макрос

define

назад

return

нет

false

нов

new

новый

new

область

namespace

объед

union

объединение

union

операция

operator

опр

define

определить

define

отмена

undef

ошибка

error

перекл

switch

переключат

switch

переключатель

switch

перехват

catch

переход

goto

переч

enum

перечисл

enum

плав

float

подстав

inline

подставл

inline

пока

while

пост

const

прагма

pragma

прагмат

pragma

прервать

break

проч

default

прочее

default

пуст

void

пустой

void

размер

sizeof

рег

register

регистр

register

своим

protected

себе

private

сим

char

симв

char

скрыт

private

скрытый

private

случ

case

случай

case

совмещ

union

совмещение

union

создать

new

стат

static

статич

static

статический

static

строка

line

структ

struct

структура

struct

тип

typedef

цел

int

цикл

do

шаблон

template

это

this

этот

this

я

q

явн

explicit

явный

explicit

Сюда ещё нужен русификатор по яролит, чтобы он переделывал идентификаторы в английские буквы (и обратно?)

Ещё вопрос - почему именно tcc. Почему например не clang. Ведь нет никакой разницы какой именно C русифицировать таким способом.

хотелось бы конкретики применительно к tcc под linux (а не "возьми да сам напиши").

Отредактировано Лис (2018-10-07 10:58:09)

0

2

хотелось бы конкретики применительно к tcc под linux (а не "возьми да сам напиши").

Да, вот собственно конкретика:
http://i.imgur.com/KzCHMAx.gif

0

3

TCC распространяется под LGPL:
https://bellard.org/tcc/

а вот clang - под MIT/BSD
https://en.wikipedia.org/wiki/Universit … ce_License

Писать на паскале странно, его эпоха ушла 20 лет назад. Сейчас язык обучения - это питон.

Отредактировано Лис (2018-10-08 14:19:44)

0

4

Писать на паскале странно, его эпоха ушла 20 лет назад. Сейчас язык обучения - это питон.

Какое отношение данное высказывание имеет к теме? Непонятно - что Вы имели в виду?

0

5

А как его русифицировать?

0. Если поддерживается кириллица, то достаточно #define, однако, сообщения компилятора останутся по-английски, как у Юрия.
Если не поддерживается, два пути:
1. Выше написал Utkin - правка исходного кода компилятора.
2. Добавление в хеш-табличку и замена по ней - всё кроме комментариев и строковых констант, т.е. можно даже упрощенный лексер. Для перевода сообщений компилятора потребуется доп. замена.
МIT|2-BSD не создают проблем для любого.

Писать на паскале странно, его эпоха ушла 20 лет назад. Сейчас язык обучения - это питон.

А перевод сей не странен, ага? :rolleyes:

Отредактировано MihalNik (2018-10-08 19:57:30)

0

6

utkin написал(а):

Да, вот собственно конкретика:

- Да, ценю юмор, - Не, действительно "аffигенно", однако не снимает вопроса "а чё же мы здеся собралися-таки обсуждати, егда и так всё ястно?"...
Цель - пропустить через себя всё то, упущенное не нами,  но без которого нет и не будет продвижения вперёд. Перелопатить всё то, что произошло без нашего ведома - наша прямая цель и обязанность, хотим мы этого или нет.
Лис, сам того не ведая, (а может это его лисья хитрость), подспудно подталкивает нас к этому осознанию. В этом что-то есть. Главное - лисий форум - самый посещаемый из всех остальных. Отсюда и уверенность в том, что этот чел не даст возможности загнить нашему начинанию. Таки-давайте кумекать и далее на на предложенными нами же темами, авось что и проклюнется.

0

7

Главное - лисий форум - самый посещаемый из всех остальных.

Просто потому что несмотря на то, что он не согласен с некоторыми точками зрения (как и остальные с его), его попытки разогнать кого-нибудь (ладно, меня :) ) откровенно вялые (уходи, бабайка!). Толлерантность делает форум привлекательным, я об этом уже сто раз писал.

0

8

MihalNik написал(а):

0. Если поддерживается кириллица, то достаточно #define

Версия 0.9.27 поддерживает идентификаторы на кириллице, только для кодировки ANSI (или кои-8, там тупо все знаки от 128 до 255 можно использовать для идентификаторов). Причем русские имена даже экспортируются без проблем.
Для перевода сообщений компилятора же придется переписать в коде все вызовы ф-й tcc_error_noabort, tcc_error и tcc_warning. Что вполне тривиальная задача.

0