Pixilang v3.0: кое-что о синтаксисе

Pixilang по русски
Post Reply
User avatar
NightRadio
Site Admin
Posts: 3059
Joined: Fri Jan 23, 2004 12:28 am
Location: Ekaterinburg. Russia
Contact:

Pixilang v3.0: кое-что о синтаксисе

Post by NightRadio » Mon Feb 15, 2010 12:16 pm

Ну вот, основные правила нового языка сформировались. Расскажу вкратце, чтобы до релиза все примерно представляли, чего ожидать :)
Общая идея осталась прежней: в переменных хранятся только числа; массивы (они же - пикси-контейнеры) имеют свои уникальные номера, по которым к ним происходит обращение.
Теперь о новом.

Добавилась поддержка дробных чисел (с плавающей запятой). Причем, почти незаметно для пользователя :) Переменные внутри себя хранят тип числа и математические операции на лету подстраиваются под этот тип. Можно спокойно писать что-нибудь типа: dot( 3, 5.3333, c ) или a = b + 4 + 6.78.

Целые числа теперь можно описывать в шестнадцатиричном и даже двоичном виде вот так: 0x4FF или 0b0100101001101.

Появились функции.
Создать новую функцию можно двумя способами:
1) my_function = { код }
2) fn my_function( $x, $y, $c ) { код }
Во втором способе показано также определение параметров функции.
Альтернативный способ доступа к параметрам функции такой: $0 - количество переданных параметров; $1 - первый параметр; $2 - второй параметр и т.д.

Не смотря на наличие функций, небольшие пикси-программы можно как и прежде писать без функций вообще. Текст программы уже считается телом одной большой глобальной функции main(), которая явно нигде не определяется.
К примеру, исходник может содержать одну единственную строчку a = 2 + 2, и это уже будет считаться полноценной программой.

Появились локальные переменные.
Локальная переменная живет только в рамках одной функции.
К имени локальной переменной добавляется символ $ - главное отличие от глобальных.
Пример: $a = b + $c
В этом примере к глобальной переменной b прибавляем локальную $c.
По поводу доступа:

Code: Select all

fn function1()
{
  $a = 4
  //$b не доступна здесь
  if c > 8 
  {
    //$a доступна здесь
    $d = 8
  }
  //$d доступна здесь
  fff = {
    //Новая функция. Здесь недоступны $a и $d. 
  }
}

fn function2()
{
  $b = 2
  //$a не доступна здесь
}
Вызов функций - только со скобками.
Так можно: frame()
Так нельзя: frame

Появилась новая операция "==". Она обозначает проверку равенства.
Пример: if a == 4 { код выполняется, если a равно 4 }
Писать, как раньше, if a = 4 {} уже нельзя, т.к. "=" обозначает операцию присвоения.

Новые операции побитного сдвига. Например: a << 4 //сдвиг на 4 бита влево

User avatar
goglus
Posts: 122
Joined: Tue Dec 04, 2007 4:19 pm
Contact:

Re: Pixilang v3.0: кое-что о синтаксисе

Post by goglus » Mon Feb 15, 2010 1:07 pm

клево

User avatar
J3d1
Posts: 175
Joined: Wed Oct 15, 2008 4:49 am
Location: г. Абакан, Хакасия
Contact:

Re: Pixilang v3.0: кое-что о синтаксисе

Post by J3d1 » Mon Feb 15, 2010 1:10 pm

Язык развивается и почти совместим с v.1.6. Скорее бы потестировать =)

User avatar
Al_Rado
Posts: 239
Joined: Tue Dec 04, 2007 2:33 pm
Location: Krasnodar
Contact:

Re: Pixilang v3.0: кое-что о синтаксисе

Post by Al_Rado » Mon Feb 15, 2010 1:47 pm

Круто! Ждём релиза!
ВекторКодПиксельПолигон - ВотЧтоЯЛюблю!

User avatar
NightRadio
Site Admin
Posts: 3059
Joined: Fri Jan 23, 2004 12:28 am
Location: Ekaterinburg. Russia
Contact:

Re: Pixilang v3.0: кое-что о синтаксисе

Post by NightRadio » Mon Feb 15, 2010 2:46 pm

Ага. Вышеперечисленное уже работает. Плавно перехожу ко второй части - реализации встроенных функций.

User avatar
kode
Posts: 7
Joined: Sun Nov 15, 2009 1:11 am
Location: Moscow
Contact:

Re: Pixilang v3.0: кое-что о синтаксисе

Post by kode » Wed Feb 17, 2010 11:38 pm

ееееееее!Будем фигачить библиотеки :)

Post Reply