Помогите выбрать скриптовый движок

Тема в разделе "WASM.HEAP", создана пользователем _DEN_, 2 окт 2011.

  1. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    мало опыта, да? все не так сложно. всего несколько функций для работы со строками и вывода.
     
  2. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    qqwe
    Ты можешь хотя бы в одной теме держать себя в руках? :) Опыта достаточно, мало времени. Мне выгоднее нанять такого как ты, чем делать это самому.

    1:1
     
  3. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    по опыту перепиливания Lua на С++, "взять движок и что-то туда добавить" - это дело некольких месяцев, особенно если движок это куча legacy кода на Си, в лучшем случае только с регрессионными тестами.

    по теме - если платформа - винда, то C++\CLI и любой .NET язык.
     
  4. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    GoldFinch
    + хорошие проблемы если внезапно придется сменить винду на что нибудь другое.

    _DEN_
    я уже упоминал, что холерик. однако держу себя в руках в плане растопыривания пальцев, правильно? кроме того, топорщащиеся пальцы - довольно достаточный признак того, что чел не совсем в теме относительно которой топорщится. или застояся в стойле.
    ну что ж, если сойдемся в цене, требованиях, условиях к работе и оплате, то велкам, попробую вам выделить несколько часов ночью, если вам это выгодно (и проект достаточно интересный)
     
  5. Dmitry_Milk

    Dmitry_Milk Member

    Публикаций:
    0
    Регистрация:
    20 ноя 2007
    Сообщения:
    535
    Дык, какой бы движок ни взяли - все равно ж придется допиливать, если собираетесь держать скрипты в XML в читабельно-редактируемом виде - какие-нибудь из допустимых языком символов однозначно придется эскейпить/манглить. Причем выборочно, ведь если тупо воспользоваться общими функциями, вручную читать/править станет совсем криво.

    Так что среди необходимых объемов "допиливания" исходные опасения окажутся лишь небольшой частью. И если движок поддерживает eval-функциональность, то вполне имеет смысл все "допиливание" возложить на язык движка, и тем самым сэкономить время.
     
  6. M0rg0t

    M0rg0t Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 окт 2010
    Сообщения:
    1.574
    Подниму тему. А что скажете насчет руби? Многие считают его достойной альтернативой питону (+в руби нет дурацких отступов) + руби считается как бы "усовершенствованным перлом"? Сам я не на нем не кодил (за исключением каких-то хелловорлдов), просто интересно.
     
  7. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    M0rg0t

    С руби дел не имел. Как у него дела с первыми двумя требованиями из нульпоста?
     
  8. Sekretarsha

    Sekretarsha New Member

    Публикаций:
    0
    Регистрация:
    30 сен 2008
    Сообщения:
    176
    некоторые гемы еще недолизаны + на винде обычно с ним не сидят
     
  9. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Sekretarsha
    А винда и не нужна - это для линуксового сервачного эм... сервера )
     
  10. Sekretarsha

    Sekretarsha New Member

    Публикаций:
    0
    Регистрация:
    30 сен 2008
    Сообщения:
    176
    M0rg0t
    зато есть end ;)
    где так считается?..
     
  11. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Sekretarsha
    end, }, или что-то еще - это не важно. Смысл в том, что отступы питона придется подружить с отступами XML-я. А как это красиво сделать - с первого взгляда не ясно.
     
  12. Dmitry_Milk

    Dmitry_Milk Member

    Публикаций:
    0
    Регистрация:
    20 ноя 2007
    Сообщения:
    535
    Раз уж подняли тему - средствами самого же питона для питона легко можно сварганить конвертер из отступного синтаксиса в строконезависимый и обратно, с помощью модуля tokenizer. В нем уже реализованы распознаватели всех токенов, в том числе и INDENT/DEDENT и NEWLINE, которые можно легко в потоке заменить токенами-словами, скажем BEGIN и END и точкозапятыми. И все это автоматически с учетом возможности вхождения этих последовательностей символов внутри строковых литералов, открытых скобок и проч.
    Уложится буквально в пару-тройку десятков строк.
     
  13. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Dmitry_Milk

    Да, это уже интересно.
     
  14. zxcv

    zxcv New Member

    Публикаций:
    0
    Регистрация:
    30 дек 2011
    Сообщения:
    257
    s_enc = s.encode(....)
    s = s_enc.decode(....)

    http://docs.python.org/howto/unicode.html
    http://www.tutorialspoint.com/python/string_encode.htm
     
  15. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    zxcv

    Не-не-не, Девид Блейн. base64 в XML хранить нельзя - в XML питон должен оставаться читабельным и редактировабельным.
     
  16. zxcv

    zxcv New Member

    Публикаций:
    0
    Регистрация:
    30 дек 2011
    Сообщения:
    257
    if varA <varB and varC="string" or varD> 2 :

    frm http://docs.python.org/howto/unicode.html . rd pls bfr wrt
    +
    ->
    s/( )|\t/\\t/s/\n/\\n/
    <-
    s/\\t/ /s/\\n/\n/
     
  17. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
  18. Dmitry_Milk

    Dmitry_Milk Member

    Публикаций:
    0
    Регистрация:
    20 ноя 2007
    Сообщения:
    535
    _DEN_, гляньте вот на результат работы такого кода
    Код (Text):
    1. from tokenize import tokenize
    2. from token import tok_name
    3.  
    4. for t in tokenize(open("какой-то-Питон-файл","rb").readline):
    5.   print(tok_name[t.type].ljust(10), repr(t.string))
    (это Питон 3, второй я не знаю, там могут быть отличия относительно различения юникодовых строк и байтовых последовательностей).

    Фактически синтаксический анализатор Питона работает уже не с файлом, а с результатами итератора, возвращаемого токенайзером, то есть с линейной последовательностью типизированных токенов. Гляньте на токены типов INDENT, DEDENT и NEWLINE. Их в этой последовательности можно практически взаимнооднозначно заменить на токены типа NAME и OP с именами, скажем, "BEGIN", "END" и ";" для строконезависимого сохранения в XML, и наоборот.
     
  19. Dmitry_Milk

    Dmitry_Milk Member

    Публикаций:
    0
    Регистрация:
    20 ноя 2007
    Сообщения:
    535
    О! а можно еще и вот так извратиться, сохраняя исходный синтаксис питона, и тогда не надо шаманства с токенами
    Код (Text):
    1. <script name='Euclid' language='Python'>
    2.   <source>
    3.     <line>while a!=b:</line>
    4.     <line>  if a>b:</line>
    5.     <line>    a=a-b</line>
    6.     <line>  else:</line>
    7.     <line>    b=b-a</line>
    8.   </source>
    9. </script>
    И волки (XML) сыты, и овцы (Python) целы :)
     
  20. Ezrah

    Ezrah Member

    Публикаций:
    0
    Регистрация:
    22 мар 2011
    Сообщения:
    411
    Извращенцы