BASIC[ProjectYaga]Форум

Рождение (3 стр)

Страницы: 1 2 3
#30
21:52, 18 фев 2022

На текущий момент:
Поправил баг с IF... THEN... ELSE....END IF
Переработал основные функции языка  cint, fix, val... и др.
Добавляю списки LIST и  Dictionary (под капотом deque и unordered_map)

#31
19:33, 21 фев 2022

И ещё реализую For Each для LIST и Dictionary

#32
4:22, 22 фев 2022


А массивы итерируются только по счетчику? Или можно будет прогнать как список?

Ну и к дизайну... - Dictionary - как то звучит и пишется не айс. в БлицМаксе оно называется "TMap" ну или "Map". Есть также вариант "THash" или же "Hash".

#33
8:42, 22 фев 2022

LIST и Dictionary - это названия из vb.net все кто на бейсике пишут привыкли к ним
Map и Hash - это ближе к Си-языкам

#34
8:47, 22 фев 2022

mingw
> А массивы итерируются только по счетчику?
Именно массивы реализованы  как классы ARRAY(_DYNAMIC\_STATIC\_STATIC_2D\_STATIC_3D)
да, пока так
и если честно не вижу смысла их гонять как список
только если ради синтаксического сахара)

#35
12:01, 22 фев 2022

LIST, Dictionary и For Each
заработали

вот пример кода:

DIM list2 AS DICTIONARY(OF STRING, INTEGER)
DIM list3 AS LIST(OF INTEGER)

list2.ADD("1", 1)
list2.ADD("2", 2)

list3.ADD(5)
list3.ADD(6)

FOR EACH l2 AS KEYVALUEPAIR(OF STRING, INTEGER) IN list2
  PRINT l2.KEYPAIR & " " & l2.VALUEPAIR & VBCRLF
NEXT

FOR EACH l3 AS INTEGER IN list3
  PRINT l3 & VBCRLF
NEXT
#36
10:02, 31 мар 2022

Поправил баги,
начал работу по добавлению StringBuilder и Date (только основу)

#37
10:04, 31 мар 2022

Сделал два варианта объявления массива:
  ARRAY_DYNAMIC textcpp(1) AS STRING
или
  DIM textcpp(1) AS ARRAY_DYNAMIC(OF STRING)
- решил пока оставить оба

Прошло более 1 года
#38
16:07, 21 фев 2024

Набросал на скорую руку сборщик проекта (надоело использовать cmd)

make 1 | Рождение

make 2 | Рождение
#39
14:16, 28 фев 2024

Релиз 1.2....
- Добавил обработку некоторых ошибок
- Начал разбираться с типами переменных и их кастом
- убрал такой тип объявления как ARRAY_DYNAMIC textcpp(1) AS STRING и ARRAY_STATIC textcpp(1) AS STRING
- убрал SET

#40
(Правка: 18:55) 17:59, 1 мар 2024

с основными типами данных определился так:
CASE  basic  RETURN c++

    CASE "INTEGER"
      RETURN "int"
    CASE "UINTEGER"
      RETURN "unsigned int"
    CASE "LONG"
      RETURN "long"
    CASE "LLONG"
      RETURN "long long"
    CASE "ULONG"
      RETURN "unsigned long"
    CASE "ULLONG"
      RETURN "unsigned long long"
    CASE "SINGLE"
      RETURN "float"
    CASE "FLOAT"
      RETURN "float"
    CASE "DOUBLE"
      RETURN "double"
    CASE "LDOUBLE"
      RETURN "long double"
    CASE "STRING"
      RETURN "std::string"
    CASE "BOOLEAN"
      RETURN "bool"
    CASE "SIZE_T"
      RETURN "size_t"
    CASE "AUTO"
      RETURN "auto"
    CASE "CHAR"
      RETURN "char"
    CASE "BYTE"
      RETURN "unsigned char"
    CASE "UCHAR"
      RETURN "unsigned char"
    CASE "SBYTE"
      RETURN "signed char"
    CASE "SCHAR"
      RETURN "signed char"
    CASE "SHORT"
      RETURN "short"
    CASE "USHORT"
      RETURN "unsigned short"
Страницы: 1 2 3
BASIC[ProjectYaga]Форум