Split modules.yml documentation per module

This commit is contained in:
aNNiMON 2023-11-16 23:47:27 +02:00 committed by Victor Melnik
parent 2a45a30778
commit c76ef4a8cc
28 changed files with 6336 additions and 6742 deletions

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,62 @@
name: android
scope: "android"
desc: "Contains common Android functions"
desc_ru: "Содержит вспомогательные функции для Android"
constants:
- name: "Intent"
typeName: map
type: 4
value: "{ACTION_BOOT_COMPLETED=android.intent.action.BOOT_COMPLETED, ACTION_DEFAULT=android.intent.action.VIEW, ACTION_DELETE=android.intent.action.DELETE, ACTION_EDIT=android.intent.action.EDIT, ACTION_INSTALL_PACKAGE=android.intent.action.INSTALL_PACKAGE, ACTION_LOCATION_SOURCE_SETTINGS=android.settings.LOCATION_SOURCE_SETTINGS, ACTION_MAIN=android.intent.action.MAIN, ACTION_MEDIA_MOUNTED=android.intent.action.MEDIA_MOUNTED, ACTION_REBOOT=android.intent.action.REBOOT, ACTION_RUN=android.intent.action.RUN, ACTION_SEARCH=android.intent.action.SEARCH, ACTION_SEND=android.intent.action.SEND, ACTION_VIEW=android.intent.action.VIEW, ACTION_WEB_SEARCH=android.intent.action.WEB_SEARCH}"
- name: R
type: 4
typeName: map
value: '{array={}, attr={}, color={}, drawable={}, id={}, integer={}, layout={}, string={}}'
desc: "Resource constants from android.R.xxx class"
desc_ru: "Константы ресурсов класса android.R.xxx"
- name: SDK_INT
type: 1
typeName: number
value: 'Android version SDK'
desc: "Android version SDK"
desc_ru: "Версия SDK Android"
- name: "Span"
typeName: map
type: 4
value: "{COLOR=0, ABSOLUTE_SIZE=1, RELATIVE_SIZE=2, URL=3, STYLE=4, CLICKABLE=5, TYPEFACE=6, HTML=7}"
functions:
- name: "assetBitmap"
args: "path"
desc: "loads bitmap from the file in apk's assets folder"
desc_ru: "загружает изображение из файла в папке assets внутри apk"
- name: "assetBytes"
args: "path"
desc: "reads bytes of the file in apk's assets folder"
desc_ru: "читает массив байт из файла в папке assets внутри apk"
- name: "assetText"
args: "path"
desc: "reads text content of the file in apk's assets folder"
desc_ru: "читает текст файла в папке assets внутри apk"
- name: "chooser"
args: ""
desc: ""
desc_ru: ""
- name: "listAssets"
args: "path"
desc: "returns list of files in apk's assets folder"
desc_ru: "возвращает список файлов в папке assets внутри apk"
- name: "spannable"
args: "type, text, ..."
desc: ""
desc_ru: ""
- name: "startActivity"
args: "intent, uri = \"\", bundle = []"
desc: "starts an activity"
desc_ru: "запускает Activity"
- name: "toast"
args: "text, duration = 0"
desc: "shows toast notification"
desc_ru: "показывает всплывающее уведомление (toast)"
- name: "uithread"
args: "function, ..."
desc: "runs function in main UI-thread"
desc_ru: "выполняет функцию в главном UI-потоке"

View File

@ -0,0 +1,24 @@
name: base64
scope: both
desc: "Contains base64 encoding and decoding functions"
desc_ru: "Содержит функции кодирования данных в base64 и наоборот"
constants:
- name: BASE64_URL_SAFE
type: 1
typeName: number
value: '8'
desc: 'Url safe encoding output'
desc_ru: 'Вывод данных в безопасном для ссылок формате'
functions:
- name: base64decode
args: 'data, type = 0'
desc: 'decodes base64-encoded byte array or string into byte array'
desc_ru: 'декодирует массив байт или строку, закодированную в base64, в массив байт'
- name: base64encode
args: 'data, type = 0'
desc: 'encodes byte array or string into base64-encoded byte array'
desc_ru: 'кодирует массив байт или строку в закодированный base64 массив байт'
- name: base64encodeToString
args: 'data, type = 0'
desc: 'encodes byte array or string into base64-encoded string'
desc_ru: 'кодирует массив байт или строку в закодированную base64 строку'

View File

@ -0,0 +1,98 @@
name: canvas
scope: "desktop"
desc: "Contains functions for working with graphics"
desc_ru: "Содержит функции для работы с графикой"
constants:
- name: "VK_DOWN"
typeName: number
type: 1
value: "40"
desc: "arrow down key code"
desc_ru: "код клавиши стрелка вниз"
- name: "VK_ESCAPE"
typeName: number
type: 1
value: "27"
desc: "Esc key code"
desc_ru: "код клавиши Esc"
- name: "VK_FIRE"
typeName: number
type: 1
value: "10"
desc: "Enter key code"
desc_ru: "код клавиши Enter"
- name: "VK_LEFT"
typeName: number
type: 1
value: "37"
desc: "arrow left key code"
desc_ru: "код клавиши стрелка влево"
- name: "VK_RIGHT"
typeName: number
type: 1
value: "39"
desc: "arrow left key code"
desc_ru: "код клавиши стрелка вправо"
- name: "VK_UP"
typeName: number
type: 1
value: "38"
desc: "arrow up key code"
desc_ru: "код клавиши стрелка вверх"
functions:
- name: "clip"
args: "x, y, w, h"
desc: "sets the current clip to the rectangle specified by the given coordinates"
desc_ru: "устанавливает текущий клип в прямоугольник, заданный данными координатами"
- name: "color"
args: "rgb"
desc: "sets color drawing. `rgb` - color with the specified combined RGB value"
desc_ru: "устанвливает цвет рисования. `rgb` - целое, комбинация цветов RGB, например `#FFGGFF`"
- name: "color"
args: "red, green, blue"
desc: "sets color with the specified red, green, and blue values in the range (0 - 255)"
desc_ru: "устанвливает цвет рисования c отдельными уровнями красного, зеленого и синего в диапазоне (0 - 255)"
- name: "drawstring"
args: "text, x, y"
desc: "draws string `text` at position `x`, `y`"
desc_ru: "рисует строку `text` с координатами `x`, `y`"
- name: "foval"
args: "x, y, w, h"
desc: "draws a filled oval at position `x`,` y`, size `w`,` h`"
desc_ru: "рисует закрашенный овал на позиции `x`, `y`, размером `w`, `h`"
- name: "frect"
args: "x, y, w, h"
desc: "draws a filled rectangle at position `x`,` y`, size `w`,` h`"
desc_ru: "рисует закрашенный прямоугольник на позиции `x`, `y`, размером `w`, `h`"
- name: "keypressed"
args: ""
desc: "returns the code of the pressed key (see the constant section)"
desc_ru: "возрвращает код нажатой клавиши (см. раздел константы)"
- name: "line"
args: "x1, y1, x2, y2"
desc: "draws line from point (`x1`;y1`) to (`x2`;y2`)"
desc_ru: "рисует линию от позиции (`x1`;y1`) до (`x2`;y2`)"
- name: "mousehover"
args: ""
desc: "returns array with current mouse pointer coordinates"
desc_ru: "возвращает массив с текущими координатами указателя мыши"
- name: "oval"
args: "x, y, w, h"
desc: "draws a oval at position `x`,` y`, size `w`,` h`"
desc_ru: "рисует овал на позиции `x`, `y`, размером `w`, `h`"
- name: "prompt"
args: "message"
desc: "displays a dialog box that prompts the visitor for input"
desc_ru: "показывает диалог для ввода значения от пользователя"
- name: "rect"
args: "x, y, w, h"
desc: "draws a rectangle at position `x`,` y`, size `w`,` h`"
desc_ru: "рисует прямоугольник на позиции `x`, `y`, размером `w`, `h`"
- name: "repaint"
args: ""
desc: "draws elements from graphics buffer on canvas"
desc_ru: "прорисовывает элементы из буфера на холсте"
- name: "window"
args: "name, width, hight"
desc: "creates a new window with the specified `name` and size `width`x`height`"
desc_ru: "создает новое окно с именем `name` и размером `width`x`height`"

View File

@ -0,0 +1,658 @@
name: canvas
scope: "android"
desc: "Contains functions for working with graphics on Android"
desc_ru: "Содержит функции для работы с графикой в Android"
constants:
- name: "VertexMode"
typeName: map
type: 4
value: "{TRIANGLES=0, TRIANGLE_STRIP=1, TRIANGLE_FAN=2}"
- name: "Action"
typeName: map
type: 4
value: "{DOWN=0, UP=1, MOVE=2, MULTIPLE=2, CANCEL=3, OUTSIDE=4, POINTER_DOWN=5, POINTER_UP=6, POINTER_INDEX_SHIFT=8, MASK=255, POINTER_INDEX_MASK=65280}"
- name: "BitmapCompressFormat"
typeName: map
type: 4
value: "{JPEG=0, PNG=1, WEBP=2}"
- name: "EdgeType"
typeName: map
type: 4
value: "{BW=0, AA=1}"
- name: "Cap"
typeName: map
type: 4
value: "{BUTT=0, ROUND=1, SQUARE=2}"
- name: "Style"
typeName: map
type: 4
value: "{FILL=0, STROKE=1, FILL_AND_STROKE=2}"
- name: "BitmapConfig"
typeName: map
type: 4
value: "{ALPHA_8=0, RGB_565=1, ARGB_4444=2, ARGB_8888=3}"
- name: "Join"
typeName: map
type: 4
value: "{MITER=0, ROUND=1, BEVEL=2}"
- name: "Align"
typeName: map
type: 4
value: "{LEFT=0, CENTER=1, RIGHT=2}"
- name: "DisplayMetrics"
typeName: map
type: 4
value: "{density=, densityDpi=, scaledDensity=, widthPixels=, heightPixels=, xdpi=, ydpi=}"
since: 1.5.1
functions:
- name: "createBitmap"
args: "..."
desc: |-
`createBitmap(bitmap)` - creates a copy of the bitmap.
`createBitmap(bytes)` - creates bitmap from byte array.
`createBitmap(w, h)` - creates new bitmap with the given size.
`createBitmap(w, h, config)` - creates new bitmap with the given size and config.
`createBitmap(bytes, offset, length)` - creates bitmap from byte array starting from offset.
`createBitmap(pixels, w, h, config)` - creates new bitmap from pixels array.
`createBitmap(bitmap, x, y, w, h)` - creates new bitmap from the part of the `bitmap`.
`createBitmap(pixels, offset, stride, w, h, config)` - creates new bitmap from pixels array starting from offset.
Returns BitmapValue.
desc_ru: |-
`createBitmap(bitmap)` - создаёт копию изображения.
`createBitmap(bytes)` - создаёт изображение из массива байт.
`createBitmap(w, h)` - создаёт новое изображение с заданным размером.
`createBitmap(w, h, config)` - создаёт новое изображение с заданным размером и конфигурацией.
`createBitmap(bytes, offset, length)` - создаёт изображение из массива байт, начиная с offset.
`createBitmap(pixels, w, h, config)` - создаёт изображение из массива пикселей.
`createBitmap(bitmap, x, y, w, h)` - создаёт изображение из части другого изображения.
`createBitmap(pixels, offset, stride, w, h, config)` - создаёт изображение из массива пикселей, начиная с offset.
Возвращает BitmapValue.
example: |-
use http, canvas
g = showcanvas()
url = "http://lorempixel.com/640/480/nature"
imageBytes = download(url)
bitmap = createBitmap(imageBytes)
g.drawBitmap(bitmap, 0, 0)
repaint()
- name: "createScaledBitmap"
args: "srcBitmap, width, height, filter"
desc: "scales bitmap to size and returns new BitmapValue"
desc_ru: "возвращает BitmapValue с изменённым размером заданного изображения"
- name: "getScreenBitmap"
args: ""
desc: "returns current screen as bitmap"
desc_ru: "возвращает содержимое экрана в виде изображения"
- name: "hidecanvas"
args: ""
desc: "closes canvas screen and releases resources"
desc_ru: "закрывает экран канваса и освобождает ресурсы"
- name: "newPath"
args: "path = null"
desc: "creates new PathValue"
desc_ru: "создаёт новый PathValue"
since: 1.5.1
- name: "newLinearGradient"
args: "x0, y0, x1, y1, colors|color1, positions|color2, tileMode"
desc: "creates new shader"
desc_ru: "создаёт новый шейдер"
since: 1.5.1
- name: "newRadialGradient"
args: "cx, cy, radius, colors|color1, positions|color2, tileMode"
desc: "creates new shader"
desc_ru: "создаёт новый шейдер"
since: 1.5.1
- name: "newSweepGradient"
args: "cx, cy, colors|color1, positions|color2"
desc: "creates new shader"
desc_ru: "создаёт новый шейдер"
since: 1.5.1
- name: "newBitmapShader"
args: "bitmap, modeX, modeY"
desc: "creates new bitmap shader"
desc_ru: "создаёт новый шейдер из картинки"
since: 1.5.1
- name: "newComposeShader"
args: "shader1, shader2, mode = SRC_OVER"
desc: "creates new composition shader"
desc_ru: "создаёт новый композитный шейдер"
since: 1.5.1
- name: "repaint"
args: ""
desc: ""
desc_ru: ""
- name: "setOnKeyDownEvent"
args: ""
desc: ""
desc_ru: ""
- name: "setOnKeyUpEvent"
args: ""
desc: ""
desc_ru: ""
- name: "setOnLongPressEvent"
args: ""
desc: ""
desc_ru: ""
- name: "setOnTouchEvent"
args: ""
desc: ""
desc_ru: ""
- name: "setGestureDetectorListener"
args: "listener"
desc: "sets gesture detector listener"
desc_ru: "устанавливает обработчик детектора жестов"
since: 1.5.1
- name: "showcanvas"
args: ""
desc: "shows canvas screen and returns GraphicsValue"
desc_ru: "показывает экран канваса и возвращает GraphicsValue"
example: |-
use canvas
g = showcanvas()
types:
- name: "BitmapValue"
functions:
- name: "compress"
args: ""
desc: ""
desc_ru: ""
- name: "copy"
args: ""
desc: ""
desc_ru: ""
- name: "eraseColor"
args: ""
desc: ""
desc_ru: ""
- name: "extractAlpha"
args: ""
desc: ""
desc_ru: ""
- name: "getAllocationByteCount"
args: ""
desc: ""
desc_ru: ""
- name: "getByteCount"
args: ""
desc: ""
desc_ru: ""
- name: "getDensity"
args: ""
desc: ""
desc_ru: ""
- name: "getGraphics"
args: ""
desc: ""
desc_ru: ""
- name: "getWidth"
args: ""
desc: ""
desc_ru: ""
- name: "getHeight"
args: ""
desc: ""
desc_ru: ""
- name: "getRowBytes"
args: ""
desc: ""
desc_ru: ""
- name: "getPixel"
args: ""
desc: ""
desc_ru: ""
- name: "getPixels"
args: ""
desc: ""
desc_ru: ""
- name: "getScaledWidth"
args: ""
desc: ""
desc_ru: ""
- name: "getScaledHeight"
args: ""
desc: ""
desc_ru: ""
- name: "hasAlpha"
args: ""
desc: ""
desc_ru: ""
- name: "hasMipMap"
args: ""
desc: ""
desc_ru: ""
- name: "isMutable"
args: ""
desc: ""
desc_ru: ""
- name: "isPremultiplied"
args: ""
desc: ""
desc_ru: ""
- name: "isRecycled"
args: ""
desc: ""
desc_ru: ""
- name: "prepareToDraw"
args: ""
desc: ""
desc_ru: ""
- name: "recycle"
args: ""
desc: ""
desc_ru: ""
- name: "setPixel"
args: ""
desc: ""
desc_ru: ""
- name: "setPixels"
args: ""
desc: ""
desc_ru: ""
- name: "GraphicsValue"
functions:
- name: "ascent"
args: ""
desc: ""
desc_ru: ""
- name: "breakText"
args: ""
desc: ""
desc_ru: ""
- name: "clearShadowLayer"
args: ""
desc: ""
desc_ru: ""
- name: "clipPath"
args: "path"
desc: ""
desc_ru: ""
since: 1.5.1
- name: "clipRect"
args: "x, y, w, h, op = 0"
desc: ""
desc_ru: ""
- name: "descent"
args: ""
desc: ""
desc_ru: ""
- name: "drawARGB"
args: ""
desc: ""
desc_ru: ""
- name: "drawArc"
args: ""
desc: ""
desc_ru: ""
- name: "drawBitmap"
args: ""
desc: ""
desc_ru: ""
- name: "drawCircle"
args: ""
desc: ""
desc_ru: ""
- name: "drawColor"
args: ""
desc: ""
desc_ru: ""
- name: "drawLine"
args: ""
desc: ""
desc_ru: ""
- name: "drawOval"
args: ""
desc: ""
desc_ru: ""
- name: "drawPath"
args: "path"
desc: ""
desc_ru: ""
since: 1.5.1
- name: "drawPoint"
args: ""
desc: ""
desc_ru: ""
- name: "drawRGB"
args: ""
desc: ""
desc_ru: ""
- name: "drawRect"
args: ""
desc: ""
desc_ru: ""
- name: "drawRoundRect"
args: ""
desc: ""
desc_ru: ""
- name: "drawText"
args: ""
desc: ""
desc_ru: ""
- name: "drawTextOnPath"
args: "text, path, hOffset, vOffset"
desc: ""
desc_ru: ""
since: 1.5.1
- name: "fillCircle"
args: ""
desc: ""
desc_ru: ""
- name: "fillOval"
args: ""
desc: ""
desc_ru: ""
- name: "fillRect"
args: ""
desc: ""
desc_ru: ""
- name: "fillRoundRect"
args: ""
desc: ""
desc_ru: ""
- name: "getAlpha"
args: ""
desc: ""
desc_ru: ""
- name: "getClipBounds"
args: ""
desc: ""
desc_ru: ""
- name: "getColor"
args: ""
desc: ""
desc_ru: ""
- name: "getFillPath"
args: "src, dst"
desc: ""
desc_ru: ""
since: 1.5.1
- name: "getDensity"
args: ""
desc: ""
desc_ru: ""
- name: "getFlags"
args: ""
desc: ""
desc_ru: ""
- name: "getFontSpacing"
args: ""
desc: ""
desc_ru: ""
- name: "getHeight"
args: ""
desc: ""
desc_ru: ""
- name: "getSaveCount"
args: ""
desc: ""
desc_ru: ""
- name: "getStrokeCap"
args: ""
desc: ""
desc_ru: ""
- name: "getStrokeJoin"
args: ""
desc: ""
desc_ru: ""
- name: "getStrokeMiter"
args: ""
desc: ""
desc_ru: ""
- name: "getStrokeWidth"
args: ""
desc: ""
desc_ru: ""
- name: "getStyle"
args: ""
desc: ""
desc_ru: ""
- name: "getTextAlign"
args: ""
desc: ""
desc_ru: ""
- name: "getTextBounds"
args: ""
desc: ""
desc_ru: ""
- name: "getTextScaleX"
args: ""
desc: ""
desc_ru: ""
- name: "getTextSize"
args: ""
desc: ""
desc_ru: ""
- name: "getTextSkewX"
args: ""
desc: ""
desc_ru: ""
- name: "getTextWidths"
args: ""
desc: ""
desc_ru: ""
- name: "getTypeface"
args: ""
desc: ""
desc_ru: ""
- name: "getWidth"
args: ""
desc: ""
desc_ru: ""
- name: "isAntiAlias"
args: ""
desc: ""
desc_ru: ""
- name: "isDither"
args: ""
desc: ""
desc_ru: ""
- name: "isFakeBoldText"
args: ""
desc: ""
desc_ru: ""
- name: "isFilterBitmap"
args: ""
desc: ""
desc_ru: ""
- name: "isLinearText"
args: ""
desc: ""
desc_ru: ""
- name: "isOpaque"
args: ""
desc: ""
desc_ru: ""
- name: "isStrikeThruText"
args: ""
desc: ""
desc_ru: ""
- name: "isSubpixelText"
args: ""
desc: ""
desc_ru: ""
- name: "isUnderlineText"
args: ""
desc: ""
desc_ru: ""
- name: "measureText"
args: ""
desc: ""
desc_ru: ""
- name: "quickReject"
args: ""
desc: ""
desc_ru: ""
- name: "reset"
args: ""
desc: ""
desc_ru: ""
- name: "restore"
args: ""
desc: ""
desc_ru: ""
- name: "restoreToCount"
args: ""
desc: ""
desc_ru: ""
- name: "rotate"
args: ""
desc: ""
desc_ru: ""
- name: "save"
args: ""
desc: ""
desc_ru: ""
- name: "saveLayer"
args: ""
desc: ""
desc_ru: ""
- name: "saveLayerAlpha"
args: ""
desc: ""
desc_ru: ""
- name: "scale"
args: ""
desc: ""
desc_ru: ""
- name: "setAlpha"
args: ""
desc: ""
desc_ru: ""
- name: "setAntiAlias"
args: ""
desc: ""
desc_ru: ""
- name: "setBitmap"
args: ""
desc: ""
desc_ru: ""
- name: "setColor"
args: ""
desc: ""
desc_ru: ""
- name: "setDensity"
args: ""
desc: ""
desc_ru: ""
- name: "setDither"
args: ""
desc: ""
desc_ru: ""
- name: "setFakeBoldText"
args: ""
desc: ""
desc_ru: ""
- name: "setFilterBitmap"
args: ""
desc: ""
desc_ru: ""
- name: "setFlags"
args: ""
desc: ""
desc_ru: ""
- name: "setLinearText"
args: ""
desc: ""
desc_ru: ""
- name: "setShader"
args: "shader"
desc: ""
desc_ru: ""
since: 1.5.1
- name: "setShadowLayer"
args: "radius, dx, dy, shadowColor"
desc: ""
desc_ru: ""
- name: "setStrikeThruText"
args: "isEnabled"
desc: ""
desc_ru: ""
- name: "setStrokeCap"
args: "cap"
desc: ""
desc_ru: ""
- name: "setStrokeJoin"
args: "join"
desc: ""
desc_ru: ""
- name: "setStrokeMiter"
args: "miter"
desc: ""
desc_ru: ""
- name: "setStrokeWidth"
args: ""
desc: ""
desc_ru: ""
- name: "setStyle"
args: ""
desc: ""
desc_ru: ""
- name: "setSubpixelText"
args: ""
desc: ""
desc_ru: ""
- name: "setTextAlign"
args: ""
desc: ""
desc_ru: ""
- name: "setTextScaleX"
args: ""
desc: ""
desc_ru: ""
- name: "setTextSize"
args: ""
desc: ""
desc_ru: ""
- name: "setTextSkewX"
args: ""
desc: ""
desc_ru: ""
- name: "setTypeface"
args: ""
desc: ""
desc_ru: ""
- name: "setUnderlineText"
args: ""
desc: ""
desc_ru: ""
- name: "skew"
args: ""
desc: ""
desc_ru: ""
- name: "strokeCircle"
args: ""
desc: ""
desc_ru: ""
- name: "strokeOval"
args: ""
desc: ""
desc_ru: ""
- name: "strokeRect"
args: ""
desc: ""
desc_ru: ""
- name: "strokeRoundRect"
args: ""
desc: ""
desc_ru: ""
- name: "translate"
args: ""
desc: ""
desc_ru: ""

File diff suppressed because one or more lines are too long

107
docs/src/modules/date.yml Normal file
View File

@ -0,0 +1,107 @@
name: date
scope: "both"
desc: "Contains functions for working with date and time"
desc_ru: "Содержит функции для работы с датой и временем"
constants:
- name: "STYLE_FULL"
typeName: number
type: 1
value: "0"
- name: "STYLE_LONG"
typeName: number
type: 1
value: "1"
- name: "STYLE_MEDIUM"
typeName: number
type: 1
value: "2"
- name: "STYLE_SHORT"
typeName: number
type: 1
value: "3"
functions:
- name: "newDate"
args: "..."
desc: |-
`newDate()` - returns current date.
`newDate(timestamp)` - returns date by given timestamp.
`newDate(dateString)` - parses and returns date by given string.
`newDate(pattern, dateString)` - parses and returns date by given string in `pattern` format.
`newDate(year, month, day)` - returns date by year, month and day.
`newDate(year, month, day, hour, minute)` - returns date by year, month, day, hour and minute.
`newDate(year, month, day, hour, minute, second)` - returns date by year, month, day, hour, minute and second.
Returns DateValue.
desc_ru: |-
`newDate()` - возвращает текущую дату.
`newDate(timestamp)` - возвращает дату для указанной метки времени.
`newDate(dateString)` - парсит и возвращает дату, записанную в виде строки.
`newDate(pattern, dateString)` - парсит и возвращает дату, записанную в виде строки в формате `pattern`.
`newDate(year, month, day)` - возвращает дату для указанных года, месяца и дня.
`newDate(year, month, day, hour, minute)` - возвращает дату для указанных года, месяца, дня, часа и минуты.
`newDate(year, month, day, hour, minute, second)` - возвращает дату для указанных года, месяца, дня, часа, минуты и секунды.
Возвращает DateValue.
- name: "newFormat"
args: "..."
desc: |-
`newFormat()` - returns default date format.
`newFormat(pattern)` - returns date format by given pattern.
`newFormat(type)` - returns format: 0 - default, 1 - date, 2 - time, 3 - date and time.
`newFormat(pattern, locale)` - returns date format by given pattern and locale.
`newFormat(type, style)` - returns format: 0 - default, 1 - date, 2 - time, 3 - date and time. `style`: 0 - full, 1 - long, 2 - medium, 3 - short.
Returns DateFormatValue.
desc_ru: |-
`newFormat()` - возвращает формат даты по умолчанию.
`newFormat(pattern)` - возвращает формат с указанным шаблоном.
`newFormat(type)` - возвращает формат: 0 - по умолчанию, 1 - для даты, 2 - для времени, 3 - для времени и даты.
`newFormat(pattern, locale)` - возвращает формат для указанного шаблона в заданной локализации.
`newFormat(type, style)` - возвращает формат: 0 - по умолчанию, 1 - для даты, 2 - для времени, 3 - для времени и даты. `style`: 0 - полный, 1 - длинный, 2 - средний, 3 - короткий.
Возвращает DateFormatValue.
- name: "formatDate"
args: "date, format = default"
desc: formats date by given format and returns string
desc_ru: форматирует дату в указанном формате и возвращает строку
example: |-
use date
d = newDate(2016, 4, 8)
println formatDate(d, newFormat("yyyy/MM/dd")) // "2016/05/08"
- name: "parseDate"
args: "dateString, format = default"
desc: parses date from string by given pattern. Returns DateValue
desc_ru: парсит дату из строки в указанном шаблоне. Возвращает DateValue
example: |-
use date
println parseDate("2016/05/08", newFormat("yyyy/MM/dd"))
- name: "toTimestamp"
args: "date"
desc: returns timestamp in milliseconds
desc_ru: возвращает время в миллисекундах
types:
- name: "DateValue"
value: "year, month, day, hour, minute, second, millisecond"
- name: "DateFormatValue"

View File

@ -0,0 +1,24 @@
name: downloader
scope: both
desc: "Contains functions for downloading large files"
desc_ru: "Содержит функции для скачивания больших файлов"
functions:
- name: getContentLength
args: 'url'
desc: 'gets content length by sending HEAD request to the given url'
desc_ru: 'получает значение заголовка Content-Length путём отправки HEAD-запроса на указанный url'
- name: downloader
args: 'downloadUrl, filePath, progressCallback = def() {}, bufferSize = 16384'
desc: 'downloads file from `downloadUrl` to `filePath`'
desc_ru: 'скачивает файл по адресу `downloadUrl` и сохраняет в `filePath`'
example: |-
use downloader, std
MBYTES = 1048576.0 // 1024*1024
url = "http://www.ovh.net/files/10Mb.dat"
file = "10Mb.dat"
downloader(url, file, def(progress, bytesDownloaded, bytesMax) {
bar = "#" * (progress / 2)
print sprintf("%-50s %d%% %.2f / %.2f MiB\\r", bar, progress, bytesDownloaded / MBYTES, bytesMax / MBYTES)
})

288
docs/src/modules/files.yml Normal file
View File

@ -0,0 +1,288 @@
name: files
scope: "both"
desc: "Contains functions for working with files"
desc_ru: "Содержит функции для работы с файлами"
constants:
- name: "FILES_COMPARATOR"
typeName: "function"
scope: "both"
type: 5
value: "def(f1, f2) = compare(f1, f2)"
desc: "function which compares two file descriptors"
desc_ru: "функция, которая сравнивает два файловых дескриптора"
- name: "SDCARD"
typeName: string
scope: "android"
type: 2
value: "path to SDCARD"
desc: "path to SDCARD"
desc_ru: "путь к внешнему хранилищу"
functions:
- name: "canExecute"
args: "f"
desc: "checks execute permission of the descriptor `f`"
desc_ru: "проверяет права на выполнение дескриптора `f`"
- name: "canRead"
args: "f"
desc: "checks read permission of the descriptor `f`"
desc_ru: "проверяет права на чтение дескриптора `f`"
- name: "canWrite"
args: "f"
desc: "checks write permission of the descriptor `f`"
desc_ru: "проверяет права на запись дескриптора `f`"
- name: copy
args: 'src, dst'
desc: 'copies file src to dst location'
desc_ru: 'копирует файл src в dst'
- name: "delete"
args: "f"
desc: "removes file or directory. Returns 1 if delete was successfull, 0 otherwise"
desc_ru: "удаляет файл или папку. Возвращает 1, если удаление прошло успешно, иначе - 0"
- name: "exists"
args: "f"
desc: "checks file or directory existing. Returns 1 if exists, 0 otherwise"
desc_ru: "проверяет, существует ли файл или папка. Возвращает 1, если существует, иначе - 0"
- name: "fclose"
args: "f"
desc: "closes file"
desc_ru: "закрывает файл"
- name: "fileSize"
args: "f"
desc: "returns file size in bytes"
desc_ru: "возвращает размер файла в байтах"
- name: "flush"
args: "f"
desc: "flushes write buffer into file"
desc_ru: "сбрасывает буфер записи в файл"
- name: "fopen"
args: "path, mode = \"r\""
desc: |-
opens file файл with `path` in given `mode`:
- "" - opens file or directory for getting info;
- "r" - opens file for read in text mode;
- "rb" - opens file for read in binary mode;
- "w" - opens file for write in text mode;
- "w+" - opens file for append in text mode;
- "wb" - opens file for write in binary mode;
- "wb+" - opens file for append in binary mode.
Returns a file descriptor for using in other functions.
desc_ru: |-
открывает файл по пути `path` в заданном режиме `mode`:
- "" - открывает файл или папку для получения информации;
- "r" - открывает файл для чтения в текстовом режиме;
- "rb" - открывает файл для чтения в бинарном режиме;
- "w" - открывает файл для записи в текстовом режиме;
- "w+" - открывает файл для дозаписи в текстовом режиме;
- "wb" - открывает файл для записи в бинарном режиме;
- "wb+" - открывает файл для дозаписи в бинарном режиме.
Возвращает дескриптор файла, который необходим для остальных функций.
example: |-
use files
f1 = fopen("text.txt") // opens file text.txt for read in text mode
f2 = fopen("E:/1.dat", "rbwb") // opens file 1.dat on drive E for binary read and write"
example_ru: |-
use files
f1 = fopen("text.txt") // открывает файл text.txt для текстового чтения
f2 = fopen("E:/1.dat", "rbwb") // открывает файл 1.dat на диске E для бинарного чтения и записи"
- name: "getParent"
args: "f"
desc: "returns parent path of the given descriptor `f`"
desc_ru: "возвращает родительский путь для заданного дескриптора `f`"
- name: "isDirectory"
args: "f"
desc: "checks if descriptor `f` is directory"
desc_ru: "проверяет, является ли дескриптор `f` папкой. 1 - является, 0 - нет"
- name: "isFile"
args: "f"
desc: "checks if descriptor `f` is file"
desc_ru: "проверяет, является ли дескриптор f файлом. 1 - является, 0 - нет"
- name: "isHidden"
args: "f"
desc: "checks if descriptor `f` is hidden"
desc_ru: "проверяет, скрыт ли дескриптор f. 1 - скрыт, 0 - нет"
- name: "lastModified"
args: "f"
desc: "returns last modification time"
desc_ru: "возвращает время последнего изменения"
- name: "listFiles"
args: "f"
desc: "returns array with filenames in given directory.\n\n f - directory descriptor"
desc_ru: "возвращает массив с именами файлов в указанной директории.\n\n f - дескриптор папки"
example: |-
use files
f1 = fopen("E:/examples", "") // opens directory examples for getting information
list = listFiles(f1) // gets array with filenames in directory
example_ru: |-
use files
f1 = fopen("E:/examples", "") // открыть папку examples для получения информации
list = listFiles(f1) // получить массив с именами файлов в этой папке
- name: "mkdir"
args: "f"
desc: "creates the directory. Returns 1 if operation was successfull, 0 otherwise"
desc_ru: "создаёт папку. Возвращает 1, если создание прошло успешно, иначе - 0"
- name: "mkdirs"
args: "f"
desc: "creates the directories. Returns 1 if operation was successfull, 0 otherwise"
desc_ru: "создаёт папки. Возвращает 1, если создание прошло успешно, иначе - 0"
- name: "readAllBytes"
args: "f"
desc: "reads all bytes from file. Returns array with bytes"
desc_ru: "чтение всех байт файла. Возвращает массив байт файла"
example: |-
use std, files
f1 = fopen("file.bin", "rb")
array = readAllBytes(f1)
println length(array)
- name: "readBoolean"
args: "f"
desc: "reads boolean (1 byte). Returns 0 if byte was 0, 1 otherwise"
desc_ru: "чтение boolean-значения (1 байт). Возвращает 0, если байт имеет значение 0, 1 - если значение не равно 0"
- name: "readByte"
args: "f"
desc: "reads one byte"
desc_ru: "чтение одного байта"
- name: "readBytes"
args: "f, array, offset = 0, length = length(array)"
desc: "reads `length` bytes of file `f` and stores to `array` starting from `offset+1` byte. Returns number of read bytes"
desc_ru: "чтение заданного количества байт в массив `array`. Возвращает число прочитанных байт. \nЕсли offset и length не указаны, то читается количество байт равное длине массива. \nЕсли offset и length указаны, то читается length байт в массив array, начиная с `offset+1` байта"
example: |-
use files
f1 = fopen("file.bin", "rb") // file.bin must contain more than 5000 bytes
array = newarray(2048)
readCount = readBytes(f1, array) // reads 2048 bytes
readCount = readBytes(f1, array, 10) // reads 2048 bytes starting from 11 byte
readCount = readBytes(f1, array, 20, 10) // reads 10 bytes, starting from 21 byte
example_ru: |-
use files
f1 = fopen("file.bin", "rb") // file.bin должен иметь больше 5000 байтов
array = newarray(2048)
readCount = readBytes(f1, array) // читает 2048 байт из файла
readCount = readBytes(f1, array, 10) // читает 2048 байт, начиная с 11 байта
readCount = readBytes(f1, array, 20, 10) // читает 10 байт, начиная с 21 байта
- name: "readChar"
args: "f"
desc: "reads one char (2 bytes). Returns number char's code"
desc_ru: "чтение одного символа (2 байта). Возвращает число - код символа"
- name: "readDouble"
args: "f"
desc: "reads 8 bytes double number"
desc_ru: "чтение 8 байт (вещественное число двойной точности)"
- name: "readFloat"
args: "f"
desc: "reads 4 bytes float number"
desc_ru: "чтение 4 байт (вещественное число)"
- name: "readInt"
args: "f"
desc: "reads 4 bytes integer number"
desc_ru: "чтение 4 байт (целое число)"
- name: "readLine"
args: "f"
desc: "reads line from file opened in text mode"
desc_ru: "чтение строки в текстовом режиме"
- name: "readLong"
args: "f"
desc: "reads 8 bytes long number"
desc_ru: "чтение 8 байт (длинное целое число)"
- name: "readShort"
args: "f"
desc: "reads 2 bytes short number"
desc_ru: "чтение 2 байт (короткое целое число)"
- name: "readText"
args: "f"
desc: "reads all file's content as string"
desc_ru: "чтение всего файла в текстовом режиме в строку"
- name: "readUTF"
args: "f"
desc: "reads string in binary mode"
desc_ru: "чтение строки в бинарном режиме"
- name: "rename"
args: "from, to"
desc: "renames (or moves) file"
desc_ru: "переименование (или перемещение) файла"
example: |-
use files
f1 = fopen("C:/file1", "i")
f2 = fopen("E:/file2", "i")
rename(f1, f2)
fclose(f1)
fclose(f2)
- name: "setLastModified"
args: "f, time"
desc: "sets last modified time"
desc_ru: "устанавливает время изменения"
- name: "setReadOnly"
args: "f"
desc: "marks descriptor read only"
desc_ru: "помечает дескриптор только для чтения"
- name: "setExecutable"
args: "f, executable, ownerOnly = true"
desc: "sets execute permission"
desc_ru: "устанавливает права на выполнение"
- name: "setReadable"
args: "f, readable, ownerOnly = true"
desc: "sets read permission"
desc_ru: "устанавливает права на чтение"
- name: "setWritable"
args: "f, writable, ownerOnly = true"
desc: "sets write permission"
desc_ru: "устанавливает права на запись"
- name: "writeBoolean"
args: "f, v"
desc: "writes boolean (0 or 1) to file"
desc_ru: "запись одного байта boolean (0 или 1) в файл"
- name: "writeByte"
args: "f, v"
desc: "writes one byte to file"
desc_ru: "запись одного байта в файл"
- name: "writeBytes"
args: "f, array, offset = 0, length = length(array)"
desc: "writes `length` bytes to file `f` from byte `array` starting from `offset`"
desc_ru: "запись заданного количества байт в файл `f` из массива байт `array`. \nЕсли offset и length не указаны, то записывается количество байт равное длине массива. \nЕсли offset и length указаны, то пропускается offset байт и записывается length байт"
- name: "writeChar"
args: "f, v"
desc: "writes one char (2 bytes) to file. `v` can be number - writes number, or string - writes code of first symbol"
desc_ru: "запись одного символа (2 байта) в файл. `v` может быть как числом (пишется это число), так и строкой (пишется код первого символа)"
- name: "writeDouble"
args: "f, v"
desc: "writes 8 bytes double number to file"
desc_ru: "запись 8 байт (вещественное число двойной точности)"
- name: "writeFloat"
args: "f, v"
desc: "writes 4 bytes float number to file"
desc_ru: "запись 4 байт (вещественное число)"
- name: "writeInt"
args: "f, v"
desc: "writes 4 bytes integer number to file"
desc_ru: "запись 4 байт (целое число)"
- name: "writeLine"
args: "f, v"
desc: "writes string to file in text mode **adds line break at the end of the string**"
desc_ru: "запись строки в текстовом режиме **Добавляет в конец символ переноса строки**"
- name: "writeLong"
args: "f, v"
desc: "writes 8 bytes long number to file"
desc_ru: "запись 8 байт (длинное целое число)"
- name: "writeShort"
args: "f, v"
desc: "writes 2 bytes short number to file"
desc_ru: "запись двух байт (короткое целое число)"
- name: "writeText"
args: "f, v"
desc: "writes string to file in text mode. Unlike `writeLine` does not add line break"
desc_ru: "запись всего текста в текстовом режиме. В отличие от `writeLine`, не добавляет символ переноса строки"
- name: "writeUTF"
args: "f, v"
desc: "writes string to file in binary mode"
desc_ru: "запись строки в бинарном режиме"

View File

@ -0,0 +1,89 @@
name: forms
scope: desktop
desc: "Contains functions for working with forms"
desc_ru: "Содержит функции для работы с формами"
constants:
- name: BorderLayout
type: 4
typeName: map
value: '{AFTER_LINE_ENDS=After, LINE_END=After, LINE_START=Before, BEFORE_LINE_BEGINS=Before, CENTER=Center, EAST=East, BEFORE_FIRST_LINE=First, PAGE_START=First, AFTER_LAST_LINE=Last, PAGE_END=Last, NORTH=North, SOUTH=South, WEST=West}'
- name: BoxLayout
type: 4
typeName: map
value: '{X_AXIS=0, Y_AXIS=1, LINE_AXIS=2, PAGE_AXIS=3}'
- name: DISPOSE_ON_CLOSE
type: 1
typeName: number
value: '2'
- name: DO_NOTHING_ON_CLOSE
type: 1
typeName: number
value: '0'
- name: EXIT_ON_CLOSE
type: 1
typeName: number
value: '3'
- name: HIDE_ON_CLOSE
type: 1
typeName: number
value: '1'
- name: SwingConstants
type: 4
typeName: map
value: '{BOTTOM=3, CENTER=0, EAST=3, HORIZONTAL=0, LEADING=10, LEFT=2, NEXT=12, NORTH=1, NORTH_EAST=2, NORTH_WEST=8, PREVIOUS=13, RIGHT=4, SOUTH=5, SOUTH_EAST=4, SOUTH_WEST=6, TOP=1, TRAILING=11, VERTICAL=1, WEST=7}'
functions:
- name: borderLayout
args: 'hgap = 0, vgap = 0'
desc: 'creates BorderLayout'
desc_ru: 'создаёт BorderLayout'
- name: boxLayout
args: 'panel, axis = BoxLayout.PAGE_AXIS'
desc: 'creates BoxLayout'
desc_ru: 'создаёт BoxLayout'
- name: cardLayout
args: 'hgap = 0, vgap = 0'
desc: 'creates CardLayout'
desc_ru: 'создаёт CardLayout'
- name: flowLayout
args: 'align = FlowLayout.CENTER, hgap = 5, vgap = 5'
desc: 'creates FlowLayout'
desc_ru: 'создаёт FlowLayout'
- name: gridLayout
args: 'rows = 1, cols = 0, hgap = 0, vgap = 0'
desc: 'creates GridLayout'
desc_ru: 'создаёт GridLayout'
- name: newButton
args: 'text = ""'
desc: 'creates new button'
desc_ru: 'создаёт новую кнопку'
- name: newLabel
args: 'text = "", align = SwingConstants.LEADING'
desc: 'creates new label'
desc_ru: 'создаёт новую текстовую метку'
- name: newPanel
args: 'layoutManager = ...'
desc: 'creates new panel with optional layout manager'
desc_ru: 'создаёт новую панель с опциональным LayoutManager'
- name: newProgressBar
args: 'isVertical = false, min = 0, max = 100'
desc: 'creates new progress bar'
desc_ru: 'создаёт новый прогрессбар'
since: 1.5.0
- name: newScrollPane
args: 'view, verticalPolicy = AS_NEEDED, horizontalPolicy = AS_NEEDED'
desc: 'creates new scroll pane'
desc_ru: 'создаёт новую область прокрутки'
since: 1.5.0
- name: newTextArea
args: 'text = ""'
desc: 'creates new text area'
desc_ru: 'создаёт новую область ввода'
since: 1.5.0
- name: newTextField
args: 'text = "", rows = 0, cols = 0'
desc: 'creates new text field'
desc_ru: 'создаёт новое поле ввода'
- name: newWindow
args: 'title = ""'
desc: 'creates new window and returns JFrameValue'
desc_ru: 'создаёт новое окно и возвращает JFrameValue'

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,161 @@
name: functional
scope: "both"
desc: "Contains functions for operating data in functional style"
desc_ru: "Содержит функции для работы с данными в функциональном стиле"
constants:
- name: "IDENTITY"
typeName: "function"
type: 5
value: "def(x) = x"
desc: "function which returns passed argument"
desc_ru: "функция, которая возвращает переданный в неё аргумент"
functions:
- name: "chain"
args: "data, functions..."
desc: ""
desc_ru: ""
- name: "combine"
args: "functions..."
desc: "combines functions"
desc_ru: "комбинирует функции (композиция)"
example: |-
use functional
def f1() = 2
def f2(a) = a*2
def f3(a) = a/4
f = combine(::f1, ::f2, ::f3)
println f() // 1
// same as
f = def() = f3(f2(f1()))
println f() // 1
example_ru: |-
use functional
def f1() = 2
def f2(a) = a*2
def f3(a) = a/4
f = combine(::f1, ::f2, ::f3)
println f() // 1
// равносильно
f = def() = f3(f2(f1()))
println f() // 1
- name: dropwhile
args: 'data, predicate'
desc: 'skips elements while predicate function returns true'
desc_ru: 'пропускает элементы пока функция-предикат возвращает true'
- name: "filter"
args: "data, predicate"
desc: "filters array or object.\n\n`predicate` is a function which takes one argument for arrays or two arguments for objects"
desc_ru: "фильтрует массив или объект и возвращает массив только с теми элементами, которые удовлетворяют предикату `predicate`.\n\n`predicate` - функция которая принимает один (для массивов) и два (для объектов) аргумента"
example: |-
use functional
nums = [1,2,3,4,5]
print filter(nums, def(x) = x % 2 == 0) // [2, 4]
- name: "flatmap"
args: "array, mapper"
desc: "converts each element of an array to other array"
desc_ru: "преобразует каждый элемент массива в массив элементов"
example: |-
use functional
nums = [1,2,3,4]
print flatmap(nums, def(x) {
arr = newarray(x)
for i = 0, i < x, i++
arr[i] = x
return arr
}) // [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]
- name: "foreach"
args: "data, consumer"
desc: "invokes function `consumer` for each element of array or map `data`\n\nIf `data` - массив, то в функции consumer необходим один параметр, если объект - два (ключ и значение)."
desc_ru: "для каждого элемента в массиве или объекте `data` вызывает функцию `consumer`\n\nЕсли `data` - массив, то в функции `consumer` необходим один параметр, если объект - два (ключ и значение)."
example: |-
use functional
foreach([1, 2, 3], def(v) { print v })
foreach({"key": 1, "key2": "text"}, def(key, value) {
print key + ": " + value
})
- name: "map"
args: "data, mapper..."
desc: "converts elements of array or map. If `data` is array - `mapper` converts his elements, if `data` is object - you need to pass `keyMapper` - converts keys and `valueMapper` - converts values"
desc_ru: "преобразует элементы массива или объекта.\n\nЕсли `data` - массив, то функция `mapper` преобразует значения, если объект - необходимо передать две функции: `keyMapper` - преобразует ключи и `valueMapper` - преобразует значения"
example: |-
use functional
nums = [3,4,5]
print map(nums, def(x) = x * x) // [9, 16, 25]
- name: "reduce"
args: "data, identity, accumulator"
desc: "converts elements of an array or a map to one value, e.g. sum of elements or concatenation string. `accumulator` takes one argument for array and two arguments for object (key and value)."
desc_ru: "преобразует элементы массива или объекта в одно значение, например сумма элементов или объединение в строку.\n\nЕсли `data` - массив, то в функции `accumulator` необходим один параметр, если объект - два (ключ и значение)"
example: |-
use functional
nums = [1,2,3,4,5]
print reduce(nums, 0, def(x, y) = x + y) // 15
- name: "sortby"
args: "array, function"
desc: "sorts elements of an array or an object by `function` result"
desc_ru: "сортирует элементы массива по данным в функции `function`"
example: |-
use functional
data = [
{"k1": 2, "k2": "x"},
{"k1": 7, "k2": "d"},
{"k1": 4, "k2": "z"},
{"k1": 5, "k2": "p"},
]
print sortby(data, def(v) = v.k1) // [{k1=2, k2=x}, {k1=4, k2=z}, {k1=5, k2=p}, {k1=7, k2=d}]
print sortby(data, def(v) = v.k2) // [{k1=7, k2=d}, {k1=5, k2=p}, {k1=2, k2=x}, {k1=4, k2=z}]
- name: "stream"
args: "data"
desc: |-
creates stream from data and returns StreamValue
StreamValue functions:
- `filter(func)` - filters elements
- `map(func)` - converts each element
- `flatMap(func)` - converts each element to array
- `sorted(func)` - sorts elements with comparator function
- `sortBy(func)` - applies function, then sorts elements
- `takeWhile(func)` - takes elements while predicate function returns true
- `dropWhile(func)` - skips elements while predicate function returns true
- `peek(func)` - executes function for each element and returns stream
- `skip(count)` - skips count elements
- `limit(count)` - limits elements size
- `custom(func)` - performs custom operation
- `reduce(func)` - converts elements to one value
- `forEach(func)` - executes function for each element
- `joining(delimiter = "", prefix = "", suffix = "")` - joins elements into a string
- `toArray()` - returns array of elements
- `count()` - returns count of elements
desc_ru: |-
создаёт stream из данных и возвращает StreamValue
Функции StreamValue:
- `filter(func)` - фильтрует элементы
- `map(func)` - преобразует каждый элемент
- `flatMap(func)` - преобразует каждый элемент в массив
- `sorted(func)` - сортирует элементы в соответствии с функцией-компаратором
- `sortBy(func)` - применяет функцию, затем сортирует элементы
- `takeWhile(func)` - собирает элементы пока функция-предикат возвращает true
- `dropWhile(func)` - пропускает элементы пока функция-предикат возвращает true
- `peek(func)` - вызывает функцию для каждого элемента и возвращает stream
- `skip(count)` - пропускает указанное количество элементов
- `limit(count)` - ограничивает количество элементов
- `custom(func)` - выполняет пользовательскую операцию над данными
- `reduce(func)` - преобразует элементы в одно значение
- `forEach(func)` - вызывает функцию для каждого элемента
- `joining(delimiter = "", prefix = "", suffix = "")` - склеивает элементы в строку
- `toArray()` - возвращает массив элементов
- `count()` - возвращает количество элементов
- name: takewhile
args: 'data, predicate'
desc: 'takes elements while predicate function returns true'
desc_ru: 'собирает элементы пока функция-предикат возвращает true'

View File

@ -0,0 +1,45 @@
name: gps
scope: "android"
desc: |-
Contains functions for working with GPS.
desc_ru: |-
Содержит функции для работы с GPS.
constants:
- name: GPS_PROVIDER
type: 2
typeName: string
value: gps
- name: NETWORK_PROVIDER
type: 2
typeName: string
value: network
functions:
- name: isEnabled
args: "provider"
desc: "checks if the given location service provider is enabled"
desc_ru: "проверяет доступность указанного провайдера местоположения"
- name: lastKnownLocation
args: "provider"
desc: "gets last known location with the given location provider, or zero if it is unable to get location"
desc_ru: "получает последнее сохранённое местоположение для указанного провайдера, либо 0, если получить местоположение не удалось"
- name: getProviders
args: "enabledOnly = false"
desc: "returns an array of location providers"
desc_ru: "возвращает массив провайдеров местоположения"
- name: "requestUpdates"
args: "provider, minTime, minDistance, callback"
desc: |-
subscribes to the location listener
desc_ru: |-
подписывается на обработчик получения местоположения
example: |-
use std, gps
provider = "gps" // or passive, network if exists
// requestUpdates(provider, 0, 25, def(loc) = echo("location changed: ", loc))
requestUpdates(provider, 10 * 1000, 25, {
"onLocationChanged" : def(loc) = echo("location changed: ", loc)
"onStatusChanged" : def(p, status) = echo("status changed: ", p, " is ", getStatus(status))
"onProviderEnabled" : def(p) = echo("provider ", p, " is now enabled")
"onProviderDisabled" : def(p) = echo("provider ", p, " is now disabled")
})

43
docs/src/modules/gzip.yml Normal file
View File

@ -0,0 +1,43 @@
name: gzip
since: 1.5.0
scope: both
desc: "Contains functions for working with gzip compression"
desc_ru: "Содержит функции для работы с gzip компрессией"
constants: []
functions:
- name: gzip
args: "inputFile, outputFile"
desc: |-
creates a gzip archive with the `inputFile` file and saves to `outputFile`.
Returns 1 if compression was successfull, -1 otherwise.
desc_ru: |-
создаёт gzip архив с файлом `inputFile` и сохраняет в `outputFile`.
Возвращает 1 если компрессия завершилась успешно, и -1 в противном случае.
example: |-
use gzip
gzip("/tmp/readme.md", "/tmp/readme.md.gz")
- name: gzipBytes
args: "bytes"
desc: returns gzip-compressed input bytes.
desc_ru: возвращает сжатый в gzip массив байт.
example: |-
use gzip
bytes = gzipBytes([0, 119, 87, 80/* ... */])
- name: ungzip
args: "inputFile, outputFile"
desc: |-
unpacks a gzip archive to `outputFile` file.
Returns 1 if operation was successfull, -1 otherwise.
desc_ru: |-
распаковывает gzip архив в файл `outputFile`.
Возвращает 1 если операция завершилась успешно, и -1 в противном случае.
example: |-
use gzip
gzip("/tmp/readme.md.gz", "/tmp/readme.md")
- name: ungzipBytes
args: "bytes"
desc: returns uncompressed bytes.
desc_ru: возвращает распакованный gzip массив байт.
example: |-
use gzip
bytes = ungzipBytes([0, 119, 87, 80/* ... */])

82
docs/src/modules/http.yml Normal file
View File

@ -0,0 +1,82 @@
name: http
scope: "both"
desc: "Contains network functions"
desc_ru: "Содержит функции для взаимодействия с сетью"
constants: []
functions:
- name: "http"
args: "url"
desc: |-
performs GET-request to `url`.
`http(url, method)` - performs request with `method` (GET, POST, PUT, DELETE, PATCH, OPTIONS) to `url`.
`http(url, callback)` - performs GET-request to `url`, response will be send to function `callback`.
`http(url, method, params)` - performs request with given `method` and object `params` to `url`.
`http(url, method, callback)` - performs request with given `method` to `url`, response will be send to function `callback`.
`http(url, method, params, callback)` - performs request with given `method` and object `params` to `url`, response will be send to function `callback`.
`http(url, method, params, options, callback)` - performs request with given `method`, object `params` and connection `options` to `url`, response will be send to function `callback`.
Connection options is a object (map):
- `header` - sets http-header (string or array).
- `encoded` - is `params` object already urlencoded.
- `content_type` - sets Content-Type.
- `extended_result` - marks that response should be extended and should contains:
- `text` - server response text
- `message` - server response message
- `code` - server response code
- `headers` - response http-header
- `content_length` - Content-Length
- `content_type` - Content-Type
desc_ru: |-
`http(url)` - выполняет GET-запрос на указанный адрес `url`.
`http(url, method)` - выполняет запрос на указанный адрес `url` методом method (GET, POST, PUT, DELETE, PATCH, OPTIONS).
`http(url, callback)` - выполняет GET-запрос на указанный адрес `url`, ответ сервера передаёт в функцию `callback`.
`http(url, method, params)` - выполняет запрос на указанный адрес `url`, методом `method` c данными `params` (объект).
`http(url, method, callback)` - выполняет запрос на указанный адрес `url`, методом `method`, ответ сервера передаёт в функцию `callback`.
`http(url, method, params, callback)` - выполняет запрос на указанный адрес `url`, методом `method`, с данными `params`, ответ сервера передаёт в функцию `callback`.
`http(url, method, params, options, callback)` - выполняет запрос на указанный адрес `url`, методом `method`, с данными `params`, параметрами подключения `options`, ответ сервера передаёт в функцию `callback`.
Параметрами подключения выступает объект. Допустимы следующие параметры
- `header` - задаёт http-заголовок, если передана строка или несколько заголовков, если массив.
- `encoded` - указывает, что данные `params` уже закодированы в URL-формате.
- `content_type` - указывает Content-Type.
- `extended_result` - указывает, что ответ сервера нужно вернуть в расширенном виде, а именно объектом с данными:
- `text` - текст ответа сервера
- `message` - сообщение сервера
- `code` - код ответа сервера
- `headers` - http-заголовки ответа
- `content_length` - Content-Length
- `content_type` - Content-Type
example: |-
use http
http("http://jsonplaceholder.typicode.com/users", "POST", {"name": "OwnLang", "versionCode": 10}, def(v) {
println "Added: " + v
})
- name: "download"
args: "url"
desc: "downloads content by url as bytes array"
desc_ru: "получает содержимое по указанному адресу в виде массива байт"
example: |-
use http, files
bytes = download("http://url")
f = fopen("file", "wb")
writeBytes(f, bytes)
flush(f)
fclose(f)
- name: "urlencode"
args: "str"
desc: "converts string to URL-format"
desc_ru: "преобразует строку в URL-формат"

View File

@ -0,0 +1,109 @@
name: imageprocessing
scope: "android"
desc: |-
Contains functions for image processing.
You can apply effect in two ways:
1. Pass BitmapValue and parameters array. The result will be a BitmapValue. `bitmap = boxBlur(bitmap, [20, 40])`
2. Pass width, height, pixels array and parameters array. The result will be an array [width, height, pixels]. `extract(width, height, pixels) = boxBlur(w, h, pixels, [20, 40])`
desc_ru: |-
Содержит функции для обработки изображений.
Применить эффект можно двумя способами:
1. Передать BitmapValue и массив параметров. Результатом будет BitmapValue. `bitmap = boxBlur(bitmap, [20, 40])`
2. Передать ширину, высоту, массив пикселей и массив параметров. Результатом будет массив [ширина, высота, пиксели]. `extract(width, height, pixels) = boxBlur(w, h, pixels, [20, 40])`
functions:
- name: "boxBlur"
args: "horizontalBlur = 10 (min 1, max 100), verticalBlur = 10 (min 1, max 100)"
desc: "applies quick blur effect"
desc_ru: "применяет быстрый эффект размытия"
- name: "contrast"
args: "level = 40 (min -100, max 100)"
desc: "changes contrast of the image"
desc_ru: "изменяет контрастность изображения"
- name: "decolour"
args: ""
desc: "converts color image to grayscale"
desc_ru: "преобразует цветное изображение в оттенки серого"
- name: "edgeDetection"
args: "operator = 1, mode = 0"
desc: |-
applies edge detection effect.
`operator` 0 - Roberts, 1 - Prewitt, 2 - Sobel, 3 - Scharr
`mode` 0 - color edges, 1 - gray edges, 2 - subtract edges
desc_ru: |-
применяет эффект выделения границ.
`operator` 0 - оператор Робертса, 1 - Прюитт, 2 - Собеля, 3 - Шарра
`mode` 0 - цветные грани, 1 - чёрно-белые грани, 2 - вычитание границ
- name: "emboss"
args: "azimuth = 45 (min 0, max 360), elevation = 45 (min 0, max 90), edgeHeight = 140 (min 0, max 256), edgeThickness = 80 (min 2, max 100), emboss = 0 (min 0, max 1)"
desc: "applies emboss effect"
desc_ru: "применяет эффект выдавливания"
- name: "extractChannel"
args: "channel = 0, monochrome = 0"
desc: |-
extracts given channel from image.
`channel` 0 - red, 1 - green, 2 - blue
`monochrome` 0 - off, 1 - on
desc_ru: |-
извлекает заданный канал из изображения.
`channel` 0 - красный, 1 - зелёный, 2 - синий
`monochrome` конвертировать полученную маску в чёрно-белый, 0 - нет, 1 - да
- name: "gamma"
args: "level = 20 (min -50, max 50)"
desc: "changes gamma of the image"
desc_ru: "изменяет гамму изображения"
- name: "hsbCorrection"
args: "hue = 45 (min 0, max 360), saturation = 0 (min -100, max 100), brightness = 0 (min -100, max 100), tone = 0 (min 0, max 1)"
desc: "changes hue, saturation and brightness of the image"
desc_ru: "изменяет оттенок, насыщенность и яркость изображения, тонирует при `tone` = 1"
- name: "invert"
args: "invertAlpha = 0, invertRed = 1, invertGreen = 2, invertBlue = 3"
desc: "inverts channels of the image"
desc_ru: "инвертирует заданные каналы изображения"
- name: "monochrome"
args: "level = 128 (min 0, max 255)"
desc: "converts color image to monochrome"
desc_ru: "преобразует цветное изображение в монохромное"
- name: "mosaic"
args: "size = 4 (min 1, max 50)"
desc: "applies mosaic effect"
desc_ru: "применяет эффект мозайки"
- name: "noiseGeneration"
args: "amount = 50 (min 0, max 255), monochrome = 0"
desc: "adds noise to images"
desc_ru: "добавляет шум к изображению"
- name: "posterization"
args: "level = 64 (min 1, max 255)"
desc: "applies posterization effect"
desc_ru: "применяет эффект постеризации"
- name: "rgbCorrection"
args: "alpha = 0 (min -255, max 255), red = 0 (min -255, max 255), green = 0 (min -255, max 255), blue = 0 (min -255, max 255)"
desc: "changes alpha, red, green and blue channels of the image"
desc_ru: "изменяет прозрачность, красный, зелёный, синий каналы изображения"
- name: "rotate"
args: "angle = 45 (min 0, max 360)"
desc: "rotates image"
desc_ru: "поворачивает изображение"
- name: "saturation"
args: "level = 64 (min -255, max 255)"
desc: "changes saturation of the image"
desc_ru: "изменяет насыщенность изображения"
- name: "scatter"
args: "horizontalScatter = 10 (min 1, max 100), verticalScatter = 10 (min 1, max 100)"
desc: "applies pixel scatter effect"
desc_ru: "применяет эффект рассеивания пикселей"
- name: "smooth"
args: "level = 3 (min 1, max 25)"
desc: "applies smooth effect"
desc_ru: "применяет эффект сглаживания"
- name: "xor"
args: "level = 64 (min 0, max 255)"
desc: "applies xor operation for each pixel of the image"
desc_ru: "применяет операцию ИСКЛЮЧАЮЩЕЕ ИЛИ для каждого пикселя изображения"

253
docs/src/modules/java.yml Normal file
View File

@ -0,0 +1,253 @@
name: java
scope: both
constants:
- name: Object.class
type: 4
typeName: map
value: 'java.lang.Object'
- name: Object[].class
type: 4
typeName: map
value: 'java.lang.Object[]'
- name: Object[][].class
type: 4
typeName: map
value: 'java.lang.Object[][]'
- name: String.class
type: 4
typeName: map
value: 'java.lang.String'
- name: String[].class
type: 4
typeName: map
value: 'java.lang.String[]'
- name: String[][].class
type: 4
typeName: map
value: 'java.lang.String[][]'
- name: boolean.class
type: 4
typeName: map
value: 'boolean'
- name: boolean[].class
type: 4
typeName: map
value: 'boolean[]'
- name: boolean[][].class
type: 4
typeName: map
value: 'boolean[][]'
- name: byte.class
type: 4
typeName: map
value: 'byte'
- name: byte[].class
type: 4
typeName: map
value: 'byte[]'
- name: byte[][].class
type: 4
typeName: map
value: 'byte[][]'
- name: char.class
type: 4
typeName: map
value: 'char'
- name: char[].class
type: 4
typeName: map
value: 'char[]'
- name: char[][].class
type: 4
typeName: map
value: 'char[][]'
- name: double.class
type: 4
typeName: map
value: 'double'
- name: double[].class
type: 4
typeName: map
value: 'double[]'
- name: double[][].class
type: 4
typeName: map
value: 'double[][]'
- name: float.class
type: 4
typeName: map
value: 'float'
- name: float[].class
type: 4
typeName: map
value: 'float[]'
- name: float[][].class
type: 4
typeName: map
value: 'float[][]'
- name: int.class
type: 4
typeName: map
value: 'int'
- name: int[].class
type: 4
typeName: map
value: 'int[]'
- name: int[][].class
type: 4
typeName: map
value: 'int[][]'
- name: long.class
type: 4
typeName: map
value: 'long'
- name: long[].class
type: 4
typeName: map
value: 'long[]'
- name: long[][].class
type: 4
typeName: map
value: 'long[][]'
- name: 'null'
type: 482862660
typeName: unknown (482862660)
value: 'null'
- name: short.class
type: 4
typeName: map
value: 'short'
- name: short[].class
type: 4
typeName: map
value: 'short[]'
- name: short[][].class
type: 4
typeName: map
value: 'short[][]'
functions:
- name: isNull
args: 'values...'
desc: 'checks if one or more values are null'
desc_ru: 'проверяет, является ли одно или несколько значений null'
- name: newClass
args: 'name'
desc: 'creates ClassValue'
desc_ru: 'создаёт ClassValue'
- name: toObject
args: 'ownlangValue'
desc: 'converts ownlangValue to Java object'
desc_ru: 'конвертирует ownlangValue в Java объект'
- name: toValue
args: 'javaObject'
desc: 'converts javaObject to OwnLang value'
desc_ru: 'конвертирует javaObject в OwnLang значение'
types:
- name: ClassValue
functions:
- name: "asSubclass"
args: ""
desc: ""
desc_ru: ""
- name: "canonicalName"
args: ""
desc: ""
desc_ru: ""
- name: "cast"
args: ""
desc: ""
desc_ru: ""
- name: "genericString"
args: ""
desc: ""
desc_ru: ""
- name: "getComponentType"
args: ""
desc: ""
desc_ru: ""
- name: "getDeclaringClass"
args: ""
desc: ""
desc_ru: ""
- name: "getEnclosingClass"
args: ""
desc: ""
desc_ru: ""
- name: "getSuperclass"
args: ""
desc: ""
desc_ru: ""
- name: "getClasses"
args: ""
desc: ""
desc_ru: ""
- name: "getDeclaredClasses"
args: ""
desc: ""
desc_ru: ""
- name: "getInterfaces"
args: ""
desc: ""
desc_ru: ""
- name: "isAnnotation"
args: ""
desc: ""
desc_ru: ""
- name: "isAnonymousClass"
args: ""
desc: ""
desc_ru: ""
- name: "isArray"
args: ""
desc: ""
desc_ru: ""
- name: "isAssignableFrom"
args: ""
desc: ""
desc_ru: ""
- name: "isEnum"
args: ""
desc: ""
desc_ru: ""
- name: "isInterface"
args: ""
desc: ""
desc_ru: ""
- name: "isLocalClass"
args: ""
desc: ""
desc_ru: ""
- name: "isMemberClass"
args: ""
desc: ""
desc_ru: ""
- name: "isPrimitive"
args: ""
desc: ""
desc_ru: ""
- name: "isSynthetic"
args: ""
desc: ""
desc_ru: ""
- name: "modifiers"
args: ""
desc: ""
desc_ru: ""
- name: "name"
args: ""
desc: ""
desc_ru: ""
- name: "new"
args: ""
desc: "creates new instance of class"
desc_ru: "создаёт новый экземпляр класса"
- name: "simpleName"
args: ""
desc: ""
desc_ru: ""
- name: "typeName"
args: ""
desc: ""
desc_ru: ""
- name: NullValue
- name: ObjectValue

685
docs/src/modules/jdbc.yml Normal file
View File

@ -0,0 +1,685 @@
name: jdbc
scope: desktop
constants:
- name: CLOSE_ALL_RESULTS
type: 1
typeName: number
value: '3'
- name: CLOSE_CURRENT_RESULT
type: 1
typeName: number
value: '1'
- name: CLOSE_CURSORS_AT_COMMIT
type: 1
typeName: number
value: '2'
- name: CONCUR_READ_ONLY
type: 1
typeName: number
value: '1007'
- name: CONCUR_UPDATABLE
type: 1
typeName: number
value: '1008'
- name: EXECUTE_FAILED
type: 1
typeName: number
value: '-3'
- name: FETCH_FORWARD
type: 1
typeName: number
value: '1000'
- name: FETCH_REVERSE
type: 1
typeName: number
value: '1001'
- name: FETCH_UNKNOWN
type: 1
typeName: number
value: '1002'
- name: HOLD_CURSORS_OVER_COMMIT
type: 1
typeName: number
value: '1'
- name: KEEP_CURRENT_RESULT
type: 1
typeName: number
value: '2'
- name: NO_GENERATED_KEYS
type: 1
typeName: number
value: '2'
- name: RETURN_GENERATED_KEYS
type: 1
typeName: number
value: '1'
- name: SUCCESS_NO_INFO
type: 1
typeName: number
value: '-2'
- name: TRANSACTION_NONE
type: 1
typeName: number
value: '0'
- name: TRANSACTION_READ_COMMITTED
type: 1
typeName: number
value: '2'
- name: TRANSACTION_READ_UNCOMMITTED
type: 1
typeName: number
value: '1'
- name: TRANSACTION_REPEATABLE_READ
type: 1
typeName: number
value: '4'
- name: TRANSACTION_SERIALIZABLE
type: 1
typeName: number
value: '8'
- name: TYPE_FORWARD_ONLY
type: 1
typeName: number
value: '1003'
- name: TYPE_SCROLL_INSENSITIVE
type: 1
typeName: number
value: '1004'
- name: TYPE_SCROLL_SENSITIVE
type: 1
typeName: number
value: '1005'
functions:
- name: getConnection
args: '...'
desc: |-
`getConnection(connectionUrl)`
`getConnection(connectionUrl, driverClassName)`
`getConnection(connectionUrl, user, password)`
`getConnection(connectionUrl, user, password, driverClassName)`
Creates connection and returns ConnectionValue.
desc_ru: |-
`getConnection(connectionUrl)`
`getConnection(connectionUrl, driverClassName)`
`getConnection(connectionUrl, user, password)`
`getConnection(connectionUrl, user, password, driverClassName)`
Создаёт подключение и возвращает ConnectionValue.
- name: mysql
args: 'connectionUrl'
desc: 'creates mysql connection'
desc_ru: 'создаёт mysql подключение'
- name: sqlite
args: 'connectionUrl'
desc: 'creates sqlite connection'
desc_ru: 'создаёт sqlite подключение'
types:
- name: ConnectionValue
functions:
- name: "clearWarnings"
args: ""
desc: ""
desc_ru: ""
- name: "close"
args: ""
desc: ""
desc_ru: ""
- name: "commit"
args: ""
desc: ""
desc_ru: ""
- name: "createStatement"
args: ""
desc: ""
desc_ru: ""
- name: "getAutoCommit"
args: ""
desc: ""
desc_ru: ""
- name: "getCatalog"
args: ""
desc: ""
desc_ru: ""
- name: "getHoldability"
args: ""
desc: ""
desc_ru: ""
- name: "getNetworkTimeout"
args: ""
desc: ""
desc_ru: ""
- name: "getSchema"
args: ""
desc: ""
desc_ru: ""
- name: "getTransactionIsolation"
args: ""
desc: ""
desc_ru: ""
- name: "getUpdateCount"
args: ""
desc: ""
desc_ru: ""
- name: "isClosed"
args: ""
desc: ""
desc_ru: ""
- name: "isReadOnly"
args: ""
desc: ""
desc_ru: ""
- name: "prepareStatement"
args: ""
desc: ""
desc_ru: ""
- name: "rollback"
args: ""
desc: ""
desc_ru: ""
- name: "setHoldability"
args: ""
desc: ""
desc_ru: ""
- name: "setTransactionIsolation"
args: ""
desc: ""
desc_ru: ""
- name: ResultSetValue
functions:
- name: "absolute"
args: ""
desc: ""
desc_ru: ""
- name: "afterLast"
args: ""
desc: ""
desc_ru: ""
- name: "beforeFirst"
args: ""
desc: ""
desc_ru: ""
- name: "cancelRowUpdates"
args: ""
desc: ""
desc_ru: ""
- name: "clearWarnings"
args: ""
desc: ""
desc_ru: ""
- name: "close"
args: ""
desc: ""
desc_ru: ""
- name: "deleteRow"
args: ""
desc: ""
desc_ru: ""
- name: "findColumn"
args: ""
desc: ""
desc_ru: ""
- name: "first"
args: ""
desc: ""
desc_ru: ""
- name: "getArray"
args: ""
desc: ""
desc_ru: ""
- name: "getBigDecimal"
args: ""
desc: ""
desc_ru: ""
- name: "getBoolean"
args: ""
desc: ""
desc_ru: ""
- name: "getByte"
args: ""
desc: ""
desc_ru: ""
- name: "getBytes"
args: ""
desc: ""
desc_ru: ""
- name: "getConcurrency"
args: ""
desc: ""
desc_ru: ""
- name: "getCursorName"
args: ""
desc: ""
desc_ru: ""
- name: "getDate"
args: ""
desc: ""
desc_ru: ""
- name: "getDouble"
args: ""
desc: ""
desc_ru: ""
- name: "getFetchDirection"
args: ""
desc: ""
desc_ru: ""
- name: "getFetchSize"
args: ""
desc: ""
desc_ru: ""
- name: "getFloat"
args: ""
desc: ""
desc_ru: ""
- name: "getHoldability"
args: ""
desc: ""
desc_ru: ""
- name: "getInt"
args: ""
desc: ""
desc_ru: ""
- name: "getLong"
args: ""
desc: ""
desc_ru: ""
- name: "getNString"
args: ""
desc: ""
desc_ru: ""
- name: "getRow"
args: ""
desc: ""
desc_ru: ""
- name: "getRowId"
args: ""
desc: ""
desc_ru: ""
- name: "getShort"
args: ""
desc: ""
desc_ru: ""
- name: "getStatement"
args: ""
desc: ""
desc_ru: ""
- name: "getString"
args: ""
desc: ""
desc_ru: ""
- name: "getTime"
args: ""
desc: ""
desc_ru: ""
- name: "getTimestamp"
args: ""
desc: ""
desc_ru: ""
- name: "getType"
args: ""
desc: ""
desc_ru: ""
- name: "getURL"
args: ""
desc: ""
desc_ru: ""
- name: "insertRow"
args: ""
desc: ""
desc_ru: ""
- name: "isAfterLast"
args: ""
desc: ""
desc_ru: ""
- name: "isBeforeFirst"
args: ""
desc: ""
desc_ru: ""
- name: "isClosed"
args: ""
desc: ""
desc_ru: ""
- name: "isFirst"
args: ""
desc: ""
desc_ru: ""
- name: "isLast"
args: ""
desc: ""
desc_ru: ""
- name: "last"
args: ""
desc: ""
desc_ru: ""
- name: "moveToCurrentRow"
args: ""
desc: ""
desc_ru: ""
- name: "moveToInsertRow"
args: ""
desc: ""
desc_ru: ""
- name: "next"
args: ""
desc: ""
desc_ru: ""
- name: "previous"
args: ""
desc: ""
desc_ru: ""
- name: "refreshRow"
args: ""
desc: ""
desc_ru: ""
- name: "relative"
args: ""
desc: ""
desc_ru: ""
- name: "rowDeleted"
args: ""
desc: ""
desc_ru: ""
- name: "rowInserted"
args: ""
desc: ""
desc_ru: ""
- name: "rowUpdated"
args: ""
desc: ""
desc_ru: ""
- name: "setFetchDirection"
args: ""
desc: ""
desc_ru: ""
- name: "setFetchSize"
args: ""
desc: ""
desc_ru: ""
- name: "updateBigDecimal"
args: ""
desc: ""
desc_ru: ""
- name: "updateBoolean"
args: ""
desc: ""
desc_ru: ""
- name: "updateByte"
args: ""
desc: ""
desc_ru: ""
- name: "updateBytes"
args: ""
desc: ""
desc_ru: ""
- name: "updateDate"
args: ""
desc: ""
desc_ru: ""
- name: "updateDouble"
args: ""
desc: ""
desc_ru: ""
- name: "updateFloat"
args: ""
desc: ""
desc_ru: ""
- name: "updateInt"
args: ""
desc: ""
desc_ru: ""
- name: "updateLong"
args: ""
desc: ""
desc_ru: ""
- name: "updateNString"
args: ""
desc: ""
desc_ru: ""
- name: "updateNull"
args: ""
desc: ""
desc_ru: ""
- name: "updateRow"
args: ""
desc: ""
desc_ru: ""
- name: "updateShort"
args: ""
desc: ""
desc_ru: ""
- name: "updateString"
args: ""
desc: ""
desc_ru: ""
- name: "updateTime"
args: ""
desc: ""
desc_ru: ""
- name: "updateTimestamp"
args: ""
desc: ""
desc_ru: ""
- name: "wasNull"
args: ""
desc: ""
desc_ru: ""
- name: StatementValue
functions:
- name: "addBatch"
args: ""
desc: ""
desc_ru: ""
- name: "cancel"
args: ""
desc: ""
desc_ru: ""
- name: "clearBatch"
args: ""
desc: ""
desc_ru: ""
- name: "clearParameters"
args: ""
desc: ""
desc_ru: ""
- name: "clearWarnings"
args: ""
desc: ""
desc_ru: ""
- name: "close"
args: ""
desc: ""
desc_ru: ""
- name: "closeOnCompletion"
args: ""
desc: ""
desc_ru: ""
- name: "execute"
args: ""
desc: ""
desc_ru: ""
- name: "executeBatch"
args: ""
desc: ""
desc_ru: ""
- name: "executeLargeBatch"
args: ""
desc: ""
desc_ru: ""
- name: "executeLargeUpdate"
args: ""
desc: ""
desc_ru: ""
- name: "executeQuery"
args: ""
desc: ""
desc_ru: ""
- name: "executeUpdate"
args: ""
desc: ""
desc_ru: ""
- name: "getFetchDirection"
args: ""
desc: ""
desc_ru: ""
- name: "getFetchSize"
args: ""
desc: ""
desc_ru: ""
- name: "getGeneratedKeys"
args: ""
desc: ""
desc_ru: ""
- name: "getMaxFieldSize"
args: ""
desc: ""
desc_ru: ""
- name: "getMaxRows"
args: ""
desc: ""
desc_ru: ""
- name: "getMoreResults"
args: ""
desc: ""
desc_ru: ""
- name: "getQueryTimeout"
args: ""
desc: ""
desc_ru: ""
- name: "getResultSet"
args: ""
desc: ""
desc_ru: ""
- name: "getResultSetConcurrency"
args: ""
desc: ""
desc_ru: ""
- name: "getResultSetHoldability"
args: ""
desc: ""
desc_ru: ""
- name: "getResultSetType"
args: ""
desc: ""
desc_ru: ""
- name: "getUpdateCount"
args: ""
desc: ""
desc_ru: ""
- name: "isCloseOnCompletion"
args: ""
desc: ""
desc_ru: ""
- name: "isClosed"
args: ""
desc: ""
desc_ru: ""
- name: "isPoolable"
args: ""
desc: ""
desc_ru: ""
- name: "setBigDecimal"
args: ""
desc: ""
desc_ru: ""
- name: "setBoolean"
args: ""
desc: ""
desc_ru: ""
- name: "setByte"
args: ""
desc: ""
desc_ru: ""
- name: "setBytes"
args: ""
desc: ""
desc_ru: ""
- name: "setCursorName"
args: ""
desc: ""
desc_ru: ""
- name: "setDate"
args: ""
desc: ""
desc_ru: ""
- name: "setDouble"
args: ""
desc: ""
desc_ru: ""
- name: "setEscapeProcessing"
args: ""
desc: ""
desc_ru: ""
- name: "setFetchDirection"
args: ""
desc: ""
desc_ru: ""
- name: "setFetchSize"
args: ""
desc: ""
desc_ru: ""
- name: "setFloat"
args: ""
desc: ""
desc_ru: ""
- name: "setInt"
args: ""
desc: ""
desc_ru: ""
- name: "setLargeMaxRows"
args: ""
desc: ""
desc_ru: ""
- name: "setLong"
args: ""
desc: ""
desc_ru: ""
- name: "setMaxFieldSize"
args: ""
desc: ""
desc_ru: ""
- name: "setMaxRows"
args: ""
desc: ""
desc_ru: ""
- name: "setNString"
args: ""
desc: ""
desc_ru: ""
- name: "setNull"
args: ""
desc: ""
desc_ru: ""
- name: "setPoolable"
args: ""
desc: ""
desc_ru: ""
- name: "setQueryTimeout"
args: ""
desc: ""
desc_ru: ""
- name: "setShort"
args: ""
desc: ""
desc_ru: ""
- name: "setString"
args: ""
desc: ""
desc_ru: ""
- name: "setTime"
args: ""
desc: ""
desc_ru: ""
- name: "setTimestamp"
args: ""
desc: ""
desc_ru: ""
- name: "setURL"
args: ""
desc: ""
desc_ru: ""

25
docs/src/modules/json.yml Normal file
View File

@ -0,0 +1,25 @@
name: json
scope: "both"
desc: "Contains functions for working with the json format"
desc_ru: "Содержит функции преобразования данных в формат json и наоборот"
constants: []
functions:
- name: "jsondecode"
args: "data"
desc: "converts data to json string"
desc_ru: "преобразует переданные данные в строку в формате json"
example: |-
use json
print jsondecode("{\"key1\":1,\"key2\":[1,2,3],\"key3\":\"text\"}") // {key2=[1, 2, 3], key3=text, key1=1}
- name: "jsonencode"
args: "jsonString, indent = 0"
desc: "converts string to data"
desc_ru: "преобразует строку в формате json в данные"
example: |-
use json
data = {
"key1": 1,
"key2": [1, 2, 3],
"key3": "text"
}
print jsonencode(data) // {"key1":1,"key2":[1,2,3],"key3":"text"}

162
docs/src/modules/math.yml Normal file
View File

@ -0,0 +1,162 @@
name: math
scope: "both"
desc: "Contains math functions and constants"
desc_ru: "Содержит математические функции и константы"
constants:
- name: "E"
typeName: number
type: 1
value: "2.718281828459045"
- name: "PI"
typeName: number
type: 1
value: "3.141592653589793"
functions:
- name: "abs"
args: "x"
desc: "absolute value of `x`"
desc_ru: "модуль числа `x`"
- name: "acos"
args: "x"
desc: "arc cosine"
desc_ru: "арккосинус"
- name: "asin"
args: "x"
desc: "arc sine"
desc_ru: "арксинус"
- name: "atan"
args: "x"
desc: "arc tangent"
desc_ru: "арктангенс"
- name: "atan2"
args: "y, x"
desc: "returns angle θ whose tangent is the ratio of two numbers"
desc_ru: "угол θ, тангенс которого равен отношению двух указанных чисел"
- name: "cbrt"
args: "x"
desc: "cube root"
desc_ru: "кубический корень числа x"
- name: "ceil"
args: "x"
desc: "returns the ceiling of `x`"
desc_ru: "округляет вещественное число в большую сторону"
example: |-
use math
ceil(6.4) // 7
- name: "copySign"
args: "magnitude, sign"
desc: "returns a value with the magnitude of x and the sign of y"
desc_ru: "возвращает значение с величиной x и знаком y"
- name: "cos"
args: "x"
desc: "trigonometric cosine"
desc_ru: "косинус"
- name: "cosh"
args: "x"
desc: "hyperbolic cosine"
desc_ru: "гиперболический косинус"
- name: "exp"
args: "x"
desc: "e<sup>x</sup>"
desc_ru: "e<sup>x</sup>"
- name: "expm1"
args: "x"
desc: "e<sup>x</sup>-1"
desc_ru: "e<sup>x</sup>-1"
- name: "floor"
args: "x"
desc: "returns floor of `x`"
desc_ru: "округляет вещественное число в меньшую сторону"
example: |-
use math
floor(3.8) // 3
- name: "getExponent"
args: "x"
desc: "returns the unbiased exponent used in the representation of a double or float"
desc_ru: "возвращают несмещенное значение экспоненты числа"
- name: "hypot"
args: "x, y"
desc: "returns the square root of the sum of squares of its arguments"
desc_ru: "расчёт гипотенузы sqrt(x<sup>2</sup> + y<sup>2</sup>) без переполнения"
- name: "IEEEremainder"
args: "x, y"
desc: "returns the remainder resulting from the division of a specified number by another specified number. This operation complies with the remainder operation defined in Section 5.1 of ANSI/IEEE Std 754-1985; IEEE Standard for Binary Floating-Point Arithmetic; Institute of Electrical and Electronics Engineers, Inc; 1985."
desc_ru: "возвращает остаток от деления x на y по стандарту ANSI/IEEE Std 754-1985, раздел 5.1"
- name: "log"
args: "x"
desc: "returns the logarithm of a specified number"
desc_ru: "логарифм"
- name: "log1p"
args: "x"
desc: ""
desc_ru: "натуральный логарифм от x + 1 (`ln(x + 1)`)"
- name: "log10"
args: "x"
desc: "returns the base 10 logarithm of a specified number"
desc_ru: "десятичный логарифм"
- name: "max"
args: "x, y"
desc: "returns the larger of two specified numbers"
desc_ru: "максимальное из двух чисел"
- name: "min"
args: "x, y"
desc: "returns the smaller of two numbers"
desc_ru: "минимальное из двух чисел"
- name: "nextAfter"
args: "x, y"
desc: ""
desc_ru: ""
- name: "nextUp"
args: "x"
desc: ""
desc_ru: ""
- name: "pow"
args: "x, y"
desc: "returns a specified number raised to the specified power"
desc_ru: "возведение x в степень y"
- name: "rint"
args: "x"
desc: ""
desc_ru: ""
- name: "round"
args: "x"
desc: "rounds a value to the nearest integer or to the specified number of fractional digits"
desc_ru: "округляет вещественное число до ближайшего целого"
- name: "signum"
args: "x"
desc: "returns an integer that indicates the sign of a number"
desc_ru: "возвращает целое число, указывающее знак числа"
- name: "sin"
args: "x"
desc: ""
desc_ru: "синус"
- name: "sinh"
args: "x"
desc: ""
desc_ru: "гиперболический синус"
- name: "sqrt"
args: "x"
desc: ""
desc_ru: "квадратный корень"
- name: "tan"
args: "x"
desc: ""
desc_ru: "тангенс"
- name: "tanh"
args: "x"
desc: ""
desc_ru: "гиперболический тангенс"
- name: "toDegrees"
args: "x"
desc: ""
desc_ru: "перевод радиан в градусы"
- name: "toRadians"
args: "x"
desc: ""
desc_ru: "перевод градусов в радианы"
- name: "ulp"
args: "x"
desc: ""
desc_ru: ""

View File

@ -0,0 +1,60 @@
name: ounit
scope: "both"
desc: "Contains functions for testing. Invokes all functions with prefix `test` and checks expected and actual values, counts execution time"
desc_ru: "Содержит функции для тестирования. Поочерёдно вызывает все функции программы, которые имеют приставку `test` и подсчитывает время выполнение и расхождения с ожидаемыми значениями"
constants: []
functions:
- name: "assertEquals"
args: "expected, actual"
desc: "checks that two values are equal"
desc_ru: "проверяет, равны ли два значения"
- name: "assertFalse"
args: "actual"
desc: "checks that value is false (equals 0)"
desc_ru: "проверяет, является ли значение ложным (равным нулю)"
- name: "assertNotEquals"
args: "expected, actual"
desc: "checks that two values are not equal"
desc_ru: "проверяет, отличаются ли два значения"
- name: "assertSameType"
args: "expected, actual"
desc: "checks that types of two values are equal"
desc_ru: "проверяет, одинаковы ли типы у двух значений"
- name: "assertTrue"
args: "actual"
desc: "checks that value is true (not equals 0)"
desc_ru: "проверяет, является ли значение истинным (не равным нулю)"
- name: "runTests"
args: ""
desc: "executes tests and returns information about it's results"
desc_ru: "запускает тесты и возвращает информацию о них по завершению работы в виде строки"
example: |-
use ounit
def testAdditionOnNumbers() {
assertEquals(6, 0 + 1 + 2 + 3)
}
def testTypes() {
assertSameType(0, 0.0)
}
def testFail() {
assertTrue(false)
}
println runTests()
/*
testTypes [passed]
Elapsed: 0,0189 sec
testAdditionOnNumbers [passed]
Elapsed: 0,0008 sec
testFail [FAILED]
Expected true, but found false.
Elapsed: 0,0001 sec
Tests run: 3, Failures: 1, Time elapsed: 0,0198 sec
*/

147
docs/src/modules/regex.yml Normal file
View File

@ -0,0 +1,147 @@
name: regex
since: 1.4.0
constants:
- name: Pattern
type: 4
typeName: map
value: "{UNIX_LINES=1, CASE_INSENSITIVE=2, I=2, COMMENTS=4, MULTILINE=8, M=8, LITERAL=16, S=32, DOTALL=32, UNICODE_CASE=64, CANON_EQ=128, UNICODE_CHARACTER_CLASS=256, U=256, quote=def(s) { return string }, matches=def(str,pattern) { return boolean }, split=def(str,pattern,limit = 0) { return array }, compile=def(pattern,flags = 0) { return PatternValue }}"
functions:
- name: regex
args: 'pattern, flags = 0'
desc: 'creates pattern and returns PatternValue'
desc_ru: 'создаёт шаблон регулярного выражения и возвращает PatternValue'
types:
- name: PatternValue
functions:
- name: "flags"
args: ""
desc: "returns pattern flags"
desc_ru: "возвращает флаги шаблона"
- name: "pattern"
args: ""
desc: "returns pattern as string"
desc_ru: "возвращает шаблон в виде строки"
- name: "matcher"
args: "input"
desc: "returns MatcherValue"
desc_ru: "возвращает MatcherValue"
- name: "matches"
args: "input"
desc: "checks if input matches the pattern"
desc_ru: "проверяет, соответствует ли входная строка шаблону"
- name: "split"
args: "input, limit = 0"
desc: "splits input around matches of this pattern"
desc_ru: "разбивает строку на основе совпадений шаблона"
- name: "replaceCallback"
args: "input, callback"
desc: "replaces input with the result of the given callback"
desc_ru: "заменяет строку результатом заданной функции"
example: |-
use regex
in = "dog cat"
pattern = regex("(\w+)\s(\w+)", Pattern.I)
println pattern.replaceCallback(in, def(m) = m.group(2) + "" + m.group(1))
example_ru: |-
use regex
in = "пёс кот"
pattern = regex("(\w+)\s(\w+)", Pattern.U | Pattern.I)
println pattern.replaceCallback(in, def(m) = m.group(2) + "о" + m.group(1))
- name: MatcherValue
functions:
- name: "start"
args: "group = ..."
desc: "returns the start index of matched subsequence"
desc_ru: "возвращает начальную позицию найденного совпадения"
- name: "end"
args: "group = ..."
desc: "returns the offset after last character of matched subsequence"
desc_ru: "возвращает позицию, следующую за последним символов найденного совпадения"
- name: "find"
args: "start = 0"
desc: "resets this matcher and attempts to find the next matched subsequence"
desc_ru: "сбрасывает состояние матчера и пытается найти следующее совпадение"
- name: "group"
args: "group = 0"
desc: "returns matched group"
desc_ru: "возвращает найденную группу"
- name: "pattern"
args: ""
desc: "returns the pattern"
desc_ru: "возвращает шаблон"
- name: "region"
args: "start, end"
desc: "sets the limits of this matcher's region"
desc_ru: "задаёт ограничения для текущего региона"
- name: "replaceFirst"
args: "replacement"
desc: "replaces first matched subsequence with the given replacement string"
desc_ru: "заменяет первое совпадение на заданную строку"
- name: "replaceAll"
args: "replacement"
desc: "replaces all matched subsequences with the given replacement string"
desc_ru: "заменяет все совпадения на заданную строку"
- name: "replaceCallback"
args: "callback"
desc: "replaces input with the result of the given callback"
desc_ru: "заменяет строку результатом заданной функции"
example: |-
use regex
in = "dog cat"
pattern = regex("(\w+)\s(\w+)", Pattern.I)
matcher = pattern.matcher(in)
println matcher.replaceCallback(def(m) = m.group(2) + m.group(1))
example_ru: |-
use regex
in = "пёс кот"
pattern = regex("(\w+)\s(\w+)", Pattern.U | Pattern.I)
matcher = pattern.matcher(in)
println matcher.replaceCallback(def(m) = m.group(2) + "о" + m.group(1))
- name: "reset"
args: input = ""
desc: ""
desc_ru: ""
- name: "usePattern"
args: "patternvalue"
desc: ""
desc_ru: ""
- name: "useAnchoringBounds"
args: "status"
desc: ""
desc_ru: ""
- name: "hasAnchoringBounds"
args: ""
desc: ""
desc_ru: ""
- name: "useTransparentBounds"
args: "status"
desc: ""
desc_ru: ""
- name: "hasTransparentBounds"
args: ""
desc: ""
desc_ru: ""
- name: "hitEnd"
args: ""
desc: ""
desc_ru: ""
- name: "lookingAt"
args: ""
desc: ""
desc_ru: ""
- name: "matches"
args: ""
desc: ""
desc_ru: ""
- name: "groupCount"
args: ""
desc: ""
desc_ru: ""
- name: "regionStart"
args: ""
desc: ""
desc_ru: ""
- name: "regionEnd"
args: ""
desc: ""
desc_ru: ""

139
docs/src/modules/robot.yml Normal file
View File

@ -0,0 +1,139 @@
name: robot
scope: "both"
desc: "Contains functions for working with clipboard, processes, automation"
desc_ru: "Содержит функции для работы с буфером обмена, процессами, автоматизацией"
constants:
- name: "BUTTON1"
typeName: number
type: 1
value: "16"
desc: "left mouse button code"
desc_ru: "код левой кнопки мыши"
- name: "BUTTON2"
typeName: number
type: 1
value: "8"
desc: "middle mouse button code"
desc_ru: "код средней кнопки мыши"
- name: "BUTTON3"
typeName: number
type: 1
value: "4"
desc: "right mouse button code"
desc_ru: "код правой кнопки мыши"
- name: "VK_DOWN"
typeName: number
type: 1
value: "40"
desc: "key down code"
desc_ru: "код клавиши вниз"
- name: "VK_ESCAPE"
typeName: number
type: 1
value: "27"
desc: "Escape key code"
desc_ru: "код клавиши Escape"
- name: "VK_FIRE"
typeName: number
type: 1
value: "10"
desc: "Enter key code"
desc_ru: "код клавиши Enter"
- name: "VK_LEFT"
typeName: number
type: 1
value: "37"
desc: "key left code"
desc_ru: "код клавиши влево"
- name: "VK_RIGHT"
typeName: number
type: 1
value: "39"
desc: "key right code"
desc_ru: "код клавиши вправо"
functions:
- name: "click"
args: "buttons"
scope: "desktop"
desc: "performs click with given mouse buttons"
desc_ru: "осуществляет клик мышью с заданными клавишами"
example: |-
use robot
click(BUTTON3) // right mouse button click
example_ru: |-
use robot
click(BUTTON3) // клик правой кнопкой мыши
- name: "delay"
args: "ms"
scope: "desktop"
desc: "delay by given milliseconds"
desc_ru: "задержка на заданной количество миллисекунд"
- name: "execProcess"
args: "args..."
desc: "executes the process with parameters"
desc_ru: "запускает процесс с параметрами\n\n Если функции переданы несколько аргументов, то они все передаются как параметры.\n Если функции передан только один параметр - массив, то его элементы передаются как параметры.\n Если функции передан только один параметр, то он служит единственным параметром."
example: |-
use robot
execProcess("mkdir", "Test")
execProcess("mkdir Test")
execProcess(["mkdir", "Test"])
- name: "execProcessAndWait"
args: "args..."
desc: "same as `execProcess`, but waits until process completes, returns it's exit code"
desc_ru: "аналогичен функции `execProcess`, но ожидает завершение порождаемого процесса и возвращает его статус"
- name: "fromClipboard"
args: ""
desc: "gets text from clipboard"
desc_ru: "получает строку из буфера обмена"
- name: "keyPress"
args: "key"
scope: "desktop"
desc: "performs pressing key"
desc_ru: "осуществляет зажатие клавиши с кодом key"
- name: "keyRelease"
args: "key"
scope: "desktop"
desc: "performs releasing key"
desc_ru: "осуществляет отпускание клавиши с кодом key"
- name: "mouseMove"
args: "x, y"
scope: "desktop"
desc: "moves mouse pointer to given point"
desc_ru: "перемещает указатель мыши в заданную координату"
- name: "mousePress"
args: "buttons"
scope: "desktop"
desc: "performs pressing the given mouse button"
desc_ru: "осуществляет зажатие заданной кнопки мыши"
- name: "mouseRelease"
args: "buttons"
scope: "desktop"
desc: "performs releasing the given mouse button"
desc_ru: "осуществляет отпускание заданной кнопки мыши"
- name: "mouseWheel"
args: "value"
scope: "desktop"
desc: "performs scrolling (< 0 - up, > 0 - down)"
desc_ru: "осуществляет прокрутку колеса мыши (отрицательное значение - вверх, положительное - вниз)"
- name: "setAutoDelay"
args: "ms"
scope: "desktop"
desc: "sets delay after each automation event"
desc_ru: "установка длительности автоматической задержки после каждого события автоматизации"
- name: "toClipboard"
args: "text"
desc: "adds text to clipboards"
desc_ru: "копирует строку в буфер обмена"
- name: "typeText"
args: "text"
scope: "desktop"
desc: "performs typing text by pressing keys for each character"
desc_ru: "осуществляет последовательное нажатие клавиш для набора заданного текста"
- name: "sudo"
args: "args..."
scope: "android"
desc: "same as `execProcess`, but executes command as root (requires rooted device)"
desc_ru: "аналогичен функции `execProcess`, но выполняет команду от имени администратора (нужен Root)"

161
docs/src/modules/socket.yml Normal file
View File

@ -0,0 +1,161 @@
name: socket
scope: both
constants:
- name: EVENT_CONNECT
type: 2
typeName: string
value: connect
- name: EVENT_CONNECTING
type: 2
typeName: string
value: connecting
- name: EVENT_CONNECT_ERROR
type: 2
typeName: string
value: connect_error
- name: EVENT_CONNECT_TIMEOUT
type: 2
typeName: string
value: connect_timeout
- name: EVENT_DISCONNECT
type: 2
typeName: string
value: disconnect
- name: EVENT_ERROR
type: 2
typeName: string
value: error
- name: EVENT_MESSAGE
type: 2
typeName: string
value: message
- name: EVENT_PING
type: 2
typeName: string
value: ping
- name: EVENT_PONG
type: 2
typeName: string
value: pong
- name: EVENT_RECONNECT
type: 2
typeName: string
value: reconnect
- name: EVENT_RECONNECTING
type: 2
typeName: string
value: reconnecting
- name: EVENT_RECONNECT_ATTEMPT
type: 2
typeName: string
value: reconnect_attempt
- name: EVENT_RECONNECT_ERROR
type: 2
typeName: string
value: reconnect_error
- name: EVENT_RECONNECT_FAILED
type: 2
typeName: string
value: reconnect_failed
functions:
- name: newSocket
args: 'url, options = {}'
desc: |-
creates new SocketValue
options (map with keys):
- forceNew (boolean)
- multiplex (boolean)
- reconnection (boolean)
- rememberUpgrade (boolean)
- secure (boolean)
- timestampRequests (boolean)
- upgrade (boolean)
- policyPort (integer)
- port (integer)
- reconnectionAttempts (integer)
- reconnectionDelay (timestamp - long)
- reconnectionDelayMax (timestamp - long)
- timeout (timestamp - long) - set -1 to disable
- randomizationFactor (double)
- host (string)
- hostname (string)
- path (string)
- query (string)
- timestampParam (string)
- transports (array of strings)
desc_ru: |-
создаёт новый SocketValue
options (map с ключами):
- forceNew (boolean)
- multiplex (boolean)
- reconnection (boolean)
- rememberUpgrade (boolean)
- secure (boolean)
- timestampRequests (boolean)
- upgrade (boolean)
- policyPort (integer)
- port (integer)
- reconnectionAttempts (integer)
- reconnectionDelay (timestamp - long)
- reconnectionDelayMax (timestamp - long)
- timeout (timestamp - long) - -1 для отключения
- randomizationFactor (double)
- host (string)
- hostname (string)
- path (string)
- query (string)
- timestampParam (string)
- transports (array of strings)
types:
- name: SocketValue
functions:
- name: "close"
args: ""
desc: "disconnects the socket"
desc_ru: "закрывает соединение сокета"
- name: "connect"
args: ""
desc: "connects the socket"
desc_ru: "подключает сокет"
- name: "connected"
args: ""
desc: "returns connected status (1 - connected, 0 - no)"
desc_ru: "возвращает состояние подключения (1 - подключен, 0 - нет)"
- name: "disconnect"
args: ""
desc: "disconnects the socket"
desc_ru: "закрывает соединение сокета"
- name: "emit"
args: "event, data"
desc: "emits an event"
desc_ru: "посылает событие"
- name: "hasListeners"
args: "event"
desc: "returns true if there is listeners for specified event"
desc_ru: "возвращает true, если для указанного события есть обработчики"
- name: "id"
args: ""
desc: "returns socket id"
desc_ru: "возвращает id сокета"
- name: "off"
args: "event = .."
desc: "removes specified event handler, or removes all if no arguments were passed"
desc_ru: "удаляет обработчик указанного события или удаляет все обработчики, если не было передано ни одного аргумента"
- name: "on"
args: "event, listener"
desc: "adds event listener"
desc_ru: "добавляет обработчик указанного события"
- name: "once"
args: "event, listener"
desc: "adds one time event listener"
desc_ru: "добавляет одноразовый обработчик указанного события"
- name: "open"
args: ""
desc: "connects the socket"
desc_ru: "подключает сокет"
- name: "send"
args: "data"
desc: "send messages"
desc_ru: "отправляет сообщения"

290
docs/src/modules/std.yml Normal file
View File

@ -0,0 +1,290 @@
name: std
scope: "both"
desc: "Contains common functions"
desc_ru: "Содержит вспомогательные функции общего назначения"
constants:
- name: "ARGS"
typeName: string
scope: "desktop"
type: 2
value: "command-line arguments"
- name: OwnLang
typeName: map
type: 4
value: "{PLATFORM=android/desktop, VERSION=1.5.0_000000, VERSION_MAJOR=1, VERSION_MINOR=5, VERSION_PATCH=0}"
since: 1.4.0
functions:
- name: arrayCombine
args: "keys, values"
desc: "creates map by combining two arrays"
desc_ru: "создаёт объект на основе двух массивов"
- name: arrayKeyExists
args: "key, map"
desc: "checks existing key in map. 1 - exists, 0 - no"
desc_ru: "проверяет, содержится ли ключ key в объекте map. 1 - содержится, 0 - нет"
- name: arrayKeys
args: "map"
desc: "returns array of map keys"
desc_ru: "возвращает массив ключей карты"
- name: arraySplice
args: "array, start, deleteCount = length(array) - start, additions = []"
desc: "returns new array with removed `deleteCount` elements starting from `start` and/or added new elements from `start` index"
desc_ru: "возвращает новый массив с удалёнными `deleteCount` элементами, начиная с позиции `start` и/или добавляет новые элементы с позиции `start`"
- name: arrayValues
args: "map"
desc: "returns array of map values"
desc_ru: "возвращает массив значений карты"
- name: charAt
args: "input, index"
desc: returns char code in position `index` of string `input`
desc_ru: возвращает код символа в позиции `index` строки `input`
- name: clearConsole
scope: "android"
args: ""
desc: "clears console"
desc_ru: "очищает консоль"
- name: default
args: a, b
desc: returns value `a` if it it non empty, returns `b` otherwise
desc_ru: возвращает значение `a`, если оно не пустое, иначе возвращается значение `b`
since: 1.4.0
example: |-
use std
user = {"name": "", "lastname": "Doe"}
name = default(user.name, "Unknown")
lastname = default(user.lastname, "Unknown")
println name + " " + lastname // Unknown Doe
example_ru: |-
use std
user = {"name": "", "lastname": "Иванов"}
name = default(user.name, "Имя неизвестно")
lastname = default(user.lastname, "фамилия неизвестна")
println name + " " + lastname // Имя неизвестно Иванов
- name: echo
args: "arg..."
desc: "prints values to console, separate them by space and puts newline at the end. Takes variable number of arguments"
desc_ru: "выводит значения в консоль, разделяя их пробелом, а потом ставит перенос строки. Может принимать переменное значение аргументов"
example: |-
use std
echo(1, "abc") // prints "1 abc" to console
echo(1, 2, 3, 4, 5, "a", "b") // prints "1 2 3 4 5 a b"
example_ru: |-
use std
echo(1, "abc") // выведет строку "1 abc" в консоль
echo(1, 2, 3, 4, 5, "a", "b") // выведет строку "1 2 3 4 5 a b" в консоль"
- name: getBytes
args: input, charset = "UTF-8"
desc: returns byte array of the string in the given charset
desc_ru: возвращает массив байт строки в заданной кодировке
since: 1.5.0
- name: indexOf
args: "input, what, index = 0"
desc: "finds first occurrence of `what` in string `input`, starting at position `index`"
desc_ru: "поиск первого вхождения подстроки `what` в строке `input`, начиная с позиции `index`"
- name: join
args: "array, delimiter = \"\", prefix = \"\", suffix = \"\""
desc: "join array to string with `delimiter`, `prefix` and `suffix`"
desc_ru: "объединяет массив в строку с разделителем `delimiter`, префиксом `prefix` и суффиксом `suffix`"
- name: lastIndexOf
args: "input, what, index = 0"
desc: "finds last occurrence of `what` in string `input`, starting at position `index`"
desc_ru: "поиск последнего вхождения подстроки `what` в строке `input`, начиная с позиции `index`"
- name: length
args: "x"
desc: "returns length of string, array/map size or number of function arguments"
desc_ru: "возвращает длину строки, размер массива/объекта или количество аргументов функции в зависимости от типа аргумента x"
- name: newarray
args: "size..."
desc: "creates array with `size`.\n`newarray(x)` - creates 1D array, `newarray(x,y)` - creates 2D array"
desc_ru: "оздаёт массив с размером size. Если указать 1 аргумент - создаётся одномерный массив, если 2 аргумента - двухмерный и т.д"
example: |-
use std
println newarray(4) // [0, 0, 0, 0]
println newarray(2, 3) // [[0, 0, 0], [0, 0, 0]]
- name: parseInt
args: "str, radix"
desc: parses string into integer in the `radix`
desc_ru: парсит строку в целое число с указанным основанием
- name: parseLong
args: "str, radix"
desc: parses string into long in the `radix`
desc_ru: парсит строку в длинное целое число с указанным основанием
- name: rand
args: "from = 0, to = .."
desc: |-
returns pseudo-random number.
`rand()` - returns float number from 0 to 1
`rand(max)` - returns random number from 0 to max
`rand(from, to)` - return random number from `from` to `to`
desc_ru: "возвращает псевдослучайное число. Если вызвать функцию без аргументов, возвращается вещественное число от 0 до 1. Если указан один аргумент - возвращается целое число в диапазоне [0...значение). Если указаны два аргумента - возвращается псевдослучайное число в промежутке [from...to)"
- name: range
args: "from = 0, to, step = 1"
desc: |-
creates lazy array by number range.
`range(to)` - creates range from 0 to `to` (exclusive) with step 1
`range(from, to)` - creates range from `from` to `to` (exclusive) with step 1
`range(from, to, step)` - creates range from `from` to `to` (exclusive) with step `step`
desc_ru: |-
создаёт массив с элементами числового промежутка. Элементы вычисляются по мере их использования, так что в цикле foreach можно использовать любые промежутки.
`range(to)` - создаёт промежуток от 0 до `to` (не включительно) с шагом 1
`range(from, to)` - создаёт промежуток от `from` до `to` (не включительно) с шагом 1
`range(from, to, step)` - создаёт промежуток от `from` до `to` (не включительно) с шагом `step`
example: |-
use std
println range(3) // [0, 1, 2]
r = range(-5, 0) // [-5, -4, -3, -2, -1]
println r[0] // -5
println r[2] // -3
for x : range(20, 9, -5) {
println x
} // 20 15 10
- name: readln
scope: "desktop"
args: "x"
desc: "reads a line from console"
desc_ru: "чтение строки из консоли"
- name: replace
args: "str, target, replacement"
desc: "replaces all occurrences of string `target` with string `replacement`"
desc_ru: "заменяет все вхождения подстроки `target` на строку `replacement`"
- name: replaceAll
args: "str, regex, replacement"
desc: "replaces all occurrences of regular expression `regex` with string `replacement`"
desc_ru: "заменяет все вхождения регулярного выражения `regex` на строку `replacement`"
- name: replaceFirst
args: "str, regex, replacement"
desc: "replaces first occurrence of regular expression `regex` with string `replacement`"
desc_ru: "заменяет первое вхождение регулярного выражения `regex` на строку `replacement`"
- name: sleep
args: "time"
desc: "causes current thread to sleep for `time` milliseconds"
desc_ru: "приостановка текущего потока на time миллисекунд"
- name: sort
args: "array, comparator = .."
desc: "sorts array by natural order or by `comparator` function"
desc_ru: "сортирует массив. Если задана функция `comparator`, то сортировка будет производится на основе результата функции сравнения"
- name: split
args: "str, regex, limit = 0"
desc: "splits string `str` with regular expression `regex` into array. `limit` parameter affects the length of resulting array"
desc_ru: "разделяет строку `str` по шаблону `regex` и помещает элементы в массив. Если указан параметр `limit`, то будет произведено не более limit разбиений, соответственно размер результирующего массива будет ограничен этим значением limit"
example: |-
use std
println split("a5b5c5d5e", "5") // ["a", "b", "c", "d", "e"]
println split("a5b5c5d5e", "5", 3) // ["a", "b", "c5d5e"]
- name: sprintf
args: "format, args..."
desc: "formats string by arguments"
desc_ru: "форматирует строку"
- name: stringFromBytes
args: input, charset = "UTF-8"
desc: returns a string from byte array in the given charset
desc_ru: возвращает строку из массива байт в заданной кодировке
since: 1.5.0
- name: stripMargin
args: input, marginPrefix = "|"
desc: trims leading whitespaces followed by `marginPrefix` on each line and removes the first and the last lines if they are blank
desc_ru: обрезает начальные пробелы, сопровождаемые `marginPrefix` в каждой строке, и удаляет первую и последнюю строки, если они пустые
since: 1.5.0
example: |-
use std
println "
|123
|456
".stripMargin() // "123\n456"
- name: substring
args: "str, startIndex, endIndex = .."
desc: "returns string from `startIndex` to `endIndex` or to end of string if `endIndex` is not set"
desc_ru: "обрезает строку `str`, начиная от символа после позиции `startIndex` и по `endIndex`. Если `endIndex` не указан, обрезается до конца строки"
example: |-
use std
println substring("abcde", 1) // bcde
println substring("abcde", 2, 4) // cd
- name: sync
args: "callback"
desc: calls an asynchronous function synchronously
desc_ru: делает асинхронный вызов синхронным
example: |-
use std, http
url = "https://whatthecommit.com/index.txt"
result = sync(def(ret) {
http(url, def(t) = ret(t))
})
println result
- name: thread
args: "func, args..."
desc: "creates new thread with parameters if passed"
desc_ru: |-
создаёт новый поток и передаёт параметры, если есть.
`func` - функция, ссылка на функцию (`::function`) или имя функции (`"function"`)
`args` - 0 или более аргументов, которые необходимо передать в функцию func
example: |-
use std
thread(def() {
println "New Thread"
})
thread(::newthread, 10)
thread("newthread", 20)
def newthread(x) {
println "New Thread. x = " + x
}
- name: time
args: ""
desc: "returns current time in milliseconds from 01.01.1970"
desc_ru: "возвращает текущее время в миллисекундах начиная с 1970 года"
- name: toChar
args: "code"
desc: "converts char code to string"
desc_ru: "переводит код символа в строку"
example: |-
use std
println toChar(48) // "0"
- name: toHexString
args: 'number'
desc: 'converts number into hex string'
desc_ru: 'конвертирует число в строку с шестнадцатиричным представлением'
- name: toLowerCase
args: "str"
desc: "converts all symbols to lower case"
desc_ru: "переводит все символы строки в нижний регистр"
- name: toUpperCase
args: "str"
desc: "converts all symbols to upper case"
desc_ru: "переводит все символы строки в верхний регистр"
- name: trim
args: "str"
desc: "removes any leading and trailing whitespaces in string"
desc_ru: "обрезает пробельные невидимые символы по обоим концам строки"
- name: try
args: "unsafeFunction, catchFunction = def(type, message) = -1"
desc: suppress any error in `unsafeFunction` and returns the result of the `catchFunction` if any error occurs
desc_ru: подавляет любые ошибки в `unsafeFunction` и возрвщает результат функции `catchFunction`, если была ошибка
example: |-
use std
println try(def() = "success") // success
println try(def() = try + 2) // -1
println try(def() = try(), def(type, message) = sprintf("Error handled:\ntype: %s\nmessage: %s", type, message))
println try(def() = try(), 42) // 42
example_ru: |-
use std
println try(def() = "успех") // успех
println try(def() = try + 2) // -1
println try(def() = try(), def(type, message) = sprintf("Обработана ошибка:\nтип: %s\nсообщение: %s", type, message))
println try(def() = try(), 42) // 42

View File

@ -0,0 +1,80 @@
name: types
scope: "both"
desc: "Contains functions for type checking and conversion"
desc_ru: "Содержит функции для проверки и преобразования типов"
constants:
- name: "OBJECT"
typeName: number
type: 1
value: "0"
- name: "NUMBER"
typeName: number
type: 1
value: "1"
- name: "STRING"
typeName: number
type: 1
value: "2"
- name: "ARRAY"
typeName: number
type: 1
value: "3"
- name: "MAP"
typeName: number
type: 1
value: "4"
- name: "FUNCTION"
typeName: number
type: 1
value: "5"
functions:
- name: "byte"
args: "value"
desc: "converts value to byte"
desc_ru: "преобразует значение к типу byte"
- name: "double"
args: "value"
desc: "converts value to double"
desc_ru: "преобразует значение к типу double"
- name: "float"
args: "value"
desc: "converts value to float"
desc_ru: "преобразует значение к типу float"
- name: "int"
args: "value"
desc: "converts value to int"
desc_ru: "преобразует значение к типу int"
- name: "long"
args: "value"
desc: "converts value to long"
desc_ru: "преобразует значение к типу long"
- name: "number"
args: "value"
desc: "converts value to number if possible"
desc_ru: "преобразует значение к числу, если это возможно"
example: |-
use types
println typeof(number("2.3")) // 1 (NUMBER)
- name: "short"
args: "value"
desc: "converts value to short"
desc_ru: "преобразует значение к типу short"
- name: "string"
args: "value"
desc: "converts value to string"
desc_ru: "преобразует значение в строку"
example: |-
use types
println typeof(string(1)) // 2 (STRING)
- name: "typeof"
args: "value"
desc: "returns the type of value"
desc_ru: "возвращает тип переданного значения"
example: |-
use types
println typeof(1) // 1 (NUMBER)
println typeof("text") // 2 (STRING)
println typeof([]) // 3 (ARRAY)

14
docs/src/modules/yaml.yml Normal file
View File

@ -0,0 +1,14 @@
name: yaml
scope: desktop
desc: "Contains functions for working with the yaml format"
desc_ru: "Содержит функции преобразования данных в формат yaml и наоборот"
constants: []
functions:
- name: yamldecode
args: "data"
desc: "converts data to yaml string"
desc_ru: "преобразует переданные данные в строку в формате yaml"
- name: yamlencode
args: "yamlString"
desc: "converts yaml string to data"
desc_ru: "преобразует строку в формате yaml в данные"

98
docs/src/modules/zip.yml Normal file
View File

@ -0,0 +1,98 @@
name: zip
since: 1.5.0
scope: both
desc: "Contains functions for working with zip archives"
desc_ru: "Содержит функции для работы с zip архивами"
constants: []
functions:
-
name: zip
args: "inputPath, outputFile, mapper = def(entryPath) = entryPath"
desc: |-
creates a zip archive with the contents of `inputPath` and saves to `outputFile`.
`mapper` is used to set the name of the final file inside the archive and for filtering. If the mapper returns an empty string, the file will be skipped.
Returns the number of archived files, or -1 if the archive could not be created.
desc_ru: |-
создаёт zip архив с содержимым `inputPath` и сохраняет в `outputFile`.
`mapper` используется для задания имени конечного файла внутри архива, а также для фильтрации. Если в mapper вернуть пустую строку, то файл будет пропущен.
Возвращает количество заархивированных файлов, либо -1, если создать архив не удалось.
example: |-
use zip
// Zip all files in directory
zip("/tmp/dir", "/tmp/1.zip")
// Zip .txt files
zip("/tmp/dir", "/tmp/2.zip", def(p) = p.endsWith(".txt") ? p : "")
example_ru: |-
use zip
// Архивировать все файлы в директории
zip("/tmp/dir", "/tmp/1.zip")
// Архивировать .txt файлы
zip("/tmp/dir", "/tmp/2.zip", def(p) = p.endsWith(".txt") ? p : "")
-
name: zipFiles
args: "input, outputFile"
desc: |-
creates a zip archive with the contents of `inputPath` and saves to `outputFile`.
If `input` is a string, then a single file or the contents of a folder is archived.
If `input` is an array, then the files and folders listed in it are archived.
If `input` is an associative array, then the files and folders listed in the keys are archived and the names inside the archive will be the values of an array.
Returns the number of archived files, or -1 if the archive could not be created.
desc_ru: |-
создаёт zip архив с содержимым `input` и сохраняет в `outputFile`.
Если `input` — строка, то архивируется один файл или содержимое папки.
Если `input` — массив, то архивируются файлы и папки, перечисленные в нём.
Если `input` — ассоциативный массив, то архивируются файлы и папки перечисленные в ключах, а именами внутри архива будут служить значения.
Возвращает количество заархивированных файлов, либо -1, если создать архив не удалось.
example: |-
use zip
zipFiles("/tmp/dir/file.txt", "/tmp/1.zip")
zipFiles(["/tmp/dir/file.txt", "/tmp/dir/readme.md"], "/tmp/2.zip")
zipFiles({"/tmp/dir/file.txt" : "docs/1.md", "/tmp/dir/readme.md" : "docs/2.md"}, "/tmp/3.zip")
-
name: unzip
args: "input, output, mapper = def(entryName) = entryPath"
desc: |-
unpacks a zip archive to `output` directory.
`mapper` is used to set the name of the final file and for filtering. If the mapper returns an empty string, the file will be skipped.
Returns the number of unzipped files, or -1 if unzipping the archive was failed.
desc_ru: |-
распаковывает zip архив `input` в папку `output`.
`mapper` используется для задания имени конечного файла, а также для фильтрации. Если в mapper вернуть пустую строку, то файл будет пропущен.
Возвращает количество разархивированных файлов, либо -1, если разархивировать архив не удалось.
example: |-
use zip
// Unzip all files in directory
unzip("/tmp/1.zip", "/tmp/dir")
// Unzip .txt files
unzip("/tmp/2.zip", "/tmp/dir", def(p) = p.endsWith(".txt") ? p : "")
example_ru: |-
use zip
// Распаковать все файлы в директории
unzip("/tmp/1.zip", "/tmp/dir")
// Распаковать .txt файлы
unzip("/tmp/2.zip", "/tmp/dir", def(p) = p.endsWith(".txt") ? p : "")
-
name: unzipFiles
args: "input, output"
desc: |-
unpacks a `output` files from zip archive .
If `output` is a string, then a single file is unzipped.
If `output` is an array, then the files listed in it are unzipped.
If `output` is an associative array, the files listed in the keys are unzipped and the values will be file names.
Returns the number of unzipped files, or -1 if unzipping the archive was failed.
desc_ru: |-
распаковывает `output` файлы из zip архива.
Если `output` — строка, то разархивируется один файл.
Если `output` — массив, то разархивируются файлы, перечисленные в нём.
Если `output` — ассоциативный массив, то разархивируются файлы перечисленные в ключах, а именами файлов будут служить значения.
Возвращает количество разархивированных файлов, либо -1, если разархивировать архив не удалось.
example: |-
use zip
unzipFiles("/tmp/1.zip", "file.txt")
unzipFiles("/tmp/2.zip", ["file.txt", "readme.md"])
unzipFiles("/tmp/3.zip", {"docs/1.md" : "/tmp/dir/file.txt", "docs/2.md" : "/tmp/dir/readme.md"})
-
name: listZipEntries
args: "input"
desc: returns an array of zip archive filenames
desc_ru: возвращает массив с именами файлов zip архива