73 Commits

Author SHA1 Message Date
Dima
670e779ba0
refactor: fix: LNG-143 LNG-144 definitions and locations algebras (#705) 2023-05-03 16:24:19 +03:00
Dima
dac8fb5774
refactor: Move LSP logic to LSP package (#701) 2023-04-20 13:01:47 +03:00
Dima
8fa979cd33
feat: Return arrows from functions (#693) 2023-04-14 16:28:17 +03:00
Dima
2394a9b875
fix: Check if expression can be added to a block (#685) 2023-04-04 16:02:26 +03:00
Dima
f5106e3c83
feat: Multiline collections and objects creation (#684) 2023-03-09 11:23:25 +03:00
Dima
50f0723a32
feat: copy structures implementation [fixes LNG-102] (#646) 2023-01-20 12:02:05 +07:00
Dima
63433f2c91
LNG-96 object creation (#592) 2022-11-30 15:28:06 +03:00
Dima
95d3dc2d9e
LNG-86 Stream canonicalization (#553) 2022-09-30 19:06:55 +03:00
Dima
e409605d21
LNG-85 Streams restrictions in aqua (#555) 2022-09-20 17:04:55 +03:00
Dima
792e174641
LNG-78 parser error on negative array indexes (#538) 2022-07-12 21:59:58 +03:00
Dima
5a7450bce1
Go-to definitions location between files (#516) 2022-06-02 13:31:31 +03:00
Dima
16a802f5a5
Language server (#512) 2022-05-17 15:05:25 +03:00
Dima
2ff870dd9a
Fixing parsing function calls in If expression (#508) 2022-04-29 15:12:40 +03:00
Dima
2901622076
#502 Fix if expression parsing (#504) 2022-04-26 18:55:45 +03:00
Dima
ab649eaf5e
Show parser error if constant is an array, function call, or expression (#496) 2022-04-21 17:28:08 +03:00
Dmitry Kurinskiy
abd101c4f9
Fix for greedy par (#487) 2022-04-12 16:27:04 +03:00
Dima
e9a686aac6
Math sequence fixes (#476) 2022-04-11 15:36:01 +03:00
Dima
8ff57625f0
#478 throw compilation error if service returns multiple results (#479) 2022-04-04 18:14:57 +07:00
Dmitry Kurinskiy
12ee2d52fa
Arrow Call as a Raw Value (#461)
* CallArrowToken in the parser

* CallArrowRawTag

* unfoldArrow

* handle IntoIndexRaw for CallArrowRaw

* Removed useless CallArrowRawTag.service argument

* RawValueInliner split into several classes

* cliJS compiles

* Parser tests compile

* Semantics spec compile but fail

* Allow braces around values

* infix token WIP

* InfixToken WIP

* Fixes #423

* Infix (arithmetic) operations order

* Infix (arithmetic) operations parallelism fix

* seq it!

* fix inline test

* fix transform test

* fix semantics spec

* fix CallArrowSem

* bugfix

* Fix for CLI help typo

* merge

* Order fix

* Order fix

* optional space after `func` in closures

* some doc comments

Co-authored-by: DieMyst <dmitry.shakhtarin@fluence.ai>
2022-03-25 17:23:41 +03:00
Dmitry Kurinskiy
ab0990dd72
Capture and apply topology (#451) 2022-03-15 14:52:43 +03:00
Dima
04e68b553f
Use global node_modules path to find aqua dependencies (#450) 2022-03-09 18:54:28 +03:00
Dmitry Kurinskiy
2fa3a09548
Empty collections creation (#447) 2022-03-04 14:07:30 +03:00
Dmitry Kurinskiy
6772c1d0fa
Sugar for collections (#445) 2022-03-03 17:54:45 +03:00
Dima
5eae05dff0
Add top-bottom support (#442) 2022-02-23 12:37:18 +03:00
Dmitry Kurinskiy
f795edfaf7
Join expression (#402) 2022-01-13 13:58:20 +03:00
Dmitry Kurinskiy
5a8a702f1c
Scalar index access (#401)
* Access index by scalar value

* Decomposed resolveField/resolveIndex semantics

* valueToRaw with recursive lambda support

* P.defer for recursive parser

* Desugarize all tags

* .backtrack

* Recursion bugfix

* Some code readability improvement

* Compile bugfix
2022-01-13 13:39:43 +03:00
Dmitry Kurinskiy
061e896b63
Model/raw refactoring (#398)
* Introducing model/raw subproject

* ValueRaw WIP

* ValueRaw WIP

* ValueModel.fromRaw WIP

* Recursive variables renaming

* Tests

* recursiveRaw

* Arrow Inliner refactoring

* desugarize takes its place WIP

* Sugar.desugarize maybe works

* Some movings/renamings

* Compile bug fixed

* Updated scalafmt

* Fix for service defaultId

* Map values recursively
2022-01-13 10:32:59 +03:00
Dima
4eb272e953
Support new fluenceJS version in run command. Print results of a function (#358) 2021-11-17 10:56:42 +03:00
Dmitry Kurinskiy
0eab86dc4c
Closures syntax (#327) 2021-11-04 19:22:57 +03:00
Dima
8c9497b9cb
#322 unclear error message if parentheses are missing (#353) 2021-11-02 17:25:34 +03:00
Dmitry Kurinskiy
1bd640e773
277 implicit canonicalization for <<- stream (#339)
* Create opaque names in NamesInterpreter

* Implicit canonicalization for <<- stream

* PR fixes

* Second part of #277
2021-10-26 19:47:28 +03:00
Dima
3844d8f2db
Run aqua code from CLI (#324) 2021-10-13 11:10:10 +03:00
Dima
aa34d04808
Add levenshtein distance to error messages, fix constant parsing (#303) 2021-09-20 15:35:45 +03:00
Dima
b0c193a42c
Error formatting, fix dry run, fix aqua extensions in imports (#301) 2021-09-14 14:42:11 +03:00
Dima
7362b46384
Fix incorrect resolving pushing stream from func to a value (#275) (#297) 2021-09-10 14:36:01 +03:00
Dima
d881f5bdbe
Upper cased constants (#260) 2021-09-07 11:09:48 +03:00
Dima
621e06dd9c
Fixes version display and empty module compilation (fixes #264 #265) (#274) 2021-09-07 11:02:36 +03:00
Dmitry Kurinskiy
3e7b11db10
Imports/exports fixes (#258)
* Fix for export in headerless file

* Ability arrow resolution bugfix

* Trying to reproduce a bug

* Allow dots in module declaration
2021-08-31 13:05:26 +03:00
Dima
dae234dc5a
Performance improvement: single parser instance (#254) 2021-08-27 15:57:44 +03:00
Dmitry Kurinskiy
3de8571be9
Imports bugfixes (#249) 2021-08-21 11:10:38 +03:00
Dmitry Kurinskiy
b9af20339b
Module and Use expressions (#245)
* Module and Use expressions

* UseFromExpr

* ImportFromExpr

* PubExpr

* Export, declares

* Collecting all the needed info WIP

* Got all the needed data

* Tests fixed

* HeaderSem

* HeaderSem wip

* Everything except `export`/`declares` should be working

* Compile bug fixed

* Fix readme: cli/assembly

* Handle declares, exports

* Compile only exports in AquaRes

* Call services imported from modules

* Import consts, types, services from modules

* Resolve arrows from modules

* Bugfix
2021-08-20 18:03:47 +03:00
Dima
e2da2e90d7
Crossprojects for JVM and JS platforms (#237) 2021-08-11 19:53:36 +03:00
Dmitry Kurinskiy
3eb3ecc221
Return many values from a single function (#229) 2021-08-09 21:33:55 +03:00
Dmitry Kurinskiy
cd30ff8e8c
Introducing Product type (#225)
* Introducing Product type

* Main codebase compiles with Arrow(domain, codomain)

* Tests compile

* Tests passed

* Tiny fixes: use argument labels in js/ts generators

* Fix for return type in .ts

* Typescript fix

* Fix for option return in JS

* Arrow variance fix

* separated CompareTypes

* Added deprecation notices to ArrowType functions

* Compile error fixed

* Types doc comments

* Multi-value return is supported in the model

* Tests compilation fixes wip

* Test compiles

* Bugfix

* Bugfix
2021-08-06 16:31:47 +03:00
Dima
4ccac9bf0e
Migration to Scala 3 (#228) 2021-08-06 13:33:58 +03:00
Dima
ee67d038ad
53 219 issues (#224)
* functions that only return literal, don't parse top-bottom

* empty funcOp to FuncOps

* version

* fix
2021-08-04 13:16:42 +03:00
Dmitry Kurinskiy
e3716f6f31
Converting compiler to a pure function (#217)
* Trying to make the compiler a pure function

* Pure compiler WIP

* Compiler should be working now

* printlns

* printlns

* printlns

* fix, delete printlns

* more logs

* fix import resolving, more tests

* fix imports, add tests for imports resolving

* fix test

* correct paths to targets, correct output

* refactoring, create directories to file if not exist

* small changes

* fix test

* Tiny fixes WIP

* Tiny fixes

* Incrementing base version, as host_peer_id is added (fixes #218)

* render error messages, WIP

* small fix

* get src for lexer error

* wrap parser error

* add list of errors

* Handle file write errors accurately

* Use show syntax

* fix test

* fix test

* fix test

* println

Co-authored-by: DieMyst <dmitry.shakhtarin@fluence.ai>
2021-08-03 17:23:28 +03:00
Dima
3bbf089e87
209 Push to stream (#214) 2021-07-26 14:31:17 +03:00
Dima
f455716548
Bug fix (#198) 2021-07-14 16:09:10 +03:00
Dmitry Kurinskiy
83d5a7b2a3
Introducing top and bottom types (#199)
* - Added top and bottom types
- Added nil for empty streams, options, arrays
- Fixed product variance

* Version bump due to syntax changes in the type system
2021-07-13 17:43:24 +03:00