Commit Graph

219 Commits

Author SHA1 Message Date
Thakee Nathees
7704a2df1a
Merge pull request #178 from ThakeeNathees/string-interpolation
String interpolation
2022-04-05 10:39:31 +05:30
Thakee Nathees
967cf3a0ed name interpolation implemented
The below is a valid syntax:
  name = "World"
  print("Hello $name!")
2022-04-05 10:22:23 +05:30
Thakee Nathees
0d87403f6b string interpolation implemented (1/2)
expression interpolation have implemented (ie. "a${b}c")
name interpolation yet to do (ie. "a $b c")
2022-04-05 08:27:46 +05:30
Thakee Nathees
c3544fb92b A test suite added to test random things. 2022-04-05 02:59:05 +05:30
Thakee Nathees
168edb5e4c
tco last call check were changed to a cleaner method (#177) 2022-04-04 20:37:29 +05:30
Thakee Nathees
402f36f7e5
docs were fully refactored (#175) 2022-04-04 08:47:15 +05:30
Thakee Nathees
cda9cc75ca
un used functions were removed (#174)
In addition tail call is not enabled for functions that
doesn't return the last call (caused a bug).
2022-04-03 21:03:12 +05:30
Thakee Nathees
5e67403a9d
Compile time stack size wrong calculation fixed. (#173)
* and / or logic refactored

* and / or opcodes added and stack size bug fixed

- and / or keywords were added.
- class construction function not poping the class instance
  from the stack (fixed).
2022-04-03 16:59:03 +05:30
Thakee Nathees
42883eb783
copyright notice updated for 2022 (#172) 2022-04-03 00:09:57 +05:30
Thakee Nathees
f3b220106c
Function type validation was always passed - fixed (#170) 2022-03-31 22:57:53 +05:30
billy4479
b0bec17410
Remove find dependency in Makefile (#164) 2022-03-31 06:25:06 +05:30
Thakee Nathees
6e02e021bc
some comments were added (#169) 2022-03-30 23:43:18 +05:30
Tim Gates
bcfa4de706
docs: Fix a few typos (#167)
There are small typos in:
- README.md
- cli/modules.c
- src/pk_compiler.c
- src/pk_core.c
- src/pk_opcodes.h
- src/pk_vm.h
- tests/benchmarks/benchmarks.py

Fixes:
- Should read `temporary` rather than `temproary`.
- Should read `stdout` rather than `stdour`.
- Should read `sprintf` rather than `spritnf`.
- Should read `splitted` rather than `splited`.
- Should read `script` rather than `scirpt`.
- Should read `reported` rather than `repored`.
- Should read `reduce` rather than `recude`.
- Should read `performance` rather than `preformance`.
- Should read `instead` rather than `insted`.
- Should read `default` rather than `defalt`.
2022-03-30 23:20:44 +05:30
Victor Akpan
9635c223b1
Added new Math functions (#160)
* Added log and round functions to math module

* Added log and round functions to math module

* Added a few math functions

* Static checks

* Maybe this will fix linux

* Fixed errors with styles and tests
2022-03-30 23:14:01 +05:30
Thakee Nathees
025ede86a4
Fix: Main function of native modules were NULL (#161)
This is handled and the crash were fixed
2021-07-03 21:54:36 +05:30
Thakee Nathees
c9ec704c13 repl crash after core-module refactor fixed 2021-07-03 20:46:01 +05:30
Thakee Nathees
89f8b77bb6
imported scripts were initialized (#158) 2021-07-02 21:32:30 +05:30
Thakee Nathees
3ef213b170 native api refactored (#157) 2021-07-01 14:55:53 +05:30
Thakee Nathees
6ad5dfe9f7
native api function improvements (#153) 2021-06-30 12:09:17 +05:30
Victor Akpan
b35b7a48cc
Log and Round Functions (#154)
* Added log and round functions to math module

* Added log and round functions to math module
2021-06-30 11:55:25 +05:30
Derick Alangi
f1bbafaa28
Introduce support for substring function - str_sub() (#152)
This function takes in 3 arguments: the string, the position and the
length (of the substring). As a quick example, a call to the function

`str_sub('c programming', 3, 11)`

will return the string 'programming' as the substring to the string
that is provisioned to the function call.
2021-06-29 18:18:41 +05:30
Thakee Nathees
273a31e588 native types initialization & attribute getters. (#147)
getters/setters native api functions added to the
vm's configurations and native types were initialized.
2021-06-29 00:30:41 +05:30
Jordan Ellis Coppard
794c789fca
add exit() function (#138)
* add exit() function

* add integer range function

* add pr request

squash

* add pr changes
2021-06-26 21:42:54 +05:30
Rohan Sharma
3f6209f20d
doc: add a better phrase to credit wren (#146) 2021-06-26 21:31:47 +05:30
Derick Alangi
44f836bf69
Fix gcc warning thrown to STDOUT about argv qualifier (#144)
Fix gcc warning 'char **' to parameter of type 'const char **' as
the library requires a 'const char**' instead of 'char**'.
2021-06-26 18:44:26 +05:30
Derick Alangi
e74e209b7c
Add support for hyperbolic & arc trigonometric functions (#126)
Functions added are: `sinh(x)`, `cosh(x)`, `tanh(x)`, `asin(x)`,
`acos(x)`, and `atan(x)`.

In addition, basic tests added in core.pk for these functions.
2021-06-26 18:13:29 +05:30
Thakee Nathees
a22c4cb90d
CLI argparse implementation. (#136)
* argparse library added to third parth.

We're using argparse (https://github.com/cofyc/argparse) repo to parse
cli args.

* parsed arguments applied to the cli.

Co-authored-by: Derick Alangi <alangiderick@gmail.com>
2021-06-24 23:08:44 +05:30
Thakee Nathees
a6b20787f8 benchmarks - files validated and ordered 2021-06-24 17:33:17 +05:30
Derick Alangi
c1cde4c69b
Yet another fix of typos (#128) 2021-06-24 16:47:54 +05:30
Derick Alangi
273fbafa09
Add IS_NUM_BYTE validator to check if number is a byte (#127)
In conjunction with the ASCII char set, a byte should be any valid
character mapping to an integer between -128 to 127 (that is signed
integers as well).

Anything beyond can't fit into a byte hence this can't be a character
but 2 characters.
2021-06-24 16:47:30 +05:30
Luke Edwards
6ce5c9f57e
fix(bench): do not double-reverse in list.js file (#133) 2021-06-24 11:43:17 +05:30
Luke Edwards
aba0546c2a
chore(bench): add lua benchmarks (#135) 2021-06-24 11:42:32 +05:30
Thakee Nathees
beaff939bb benchmarks script refactored (#134) 2021-06-24 11:16:51 +05:30
Luke Edwards
07321cc660
chore: include nodejs benchmarks (#125)
* chore: include nodejs benchmarks;

- Related #124

* chore: fix `factors.js` typo
2021-06-23 23:17:08 +05:30
Derick Alangi
5927d2cc8f
.DS_Store is usually from macOS & .idea/ is IntelliJ products (#123) 2021-06-23 22:21:24 +05:30
Jordan Ellis Coppard
39c5fba9d9
add elem in map (#121) 2021-06-23 21:03:26 +05:30
Tiago Cavalcante Trindade
6d434db0cb
Add <<= and >>= operators (#119)
* Add <<= and >>=
2021-06-23 19:54:20 +05:30
Thakee Nathees
64bf27674a
in test (ie. elem in container) implemented. (#117)
in keyword will invoke varContains(), the for now the list contains
implemented.
2021-06-23 15:51:59 +05:30
Thakee Nathees
000f4c4fe4
yet another docs update (#115) 2021-06-23 10:51:18 +05:30
Dmitry Guzeev
dbdb43b8ed
Number literal parsing (#106)
* Implement proper number literal parsing

- Scientific notation support
- Correct error handling in cases of invalid digits present in binary or
  hex literals (0b123, 0x013FK).

* Fix style linter issues

* Support +/- in number literal exponent, add tests

- Add tests for scientific notation number literal parsing
- Add support for +/- in scientific notation exponents
2021-06-23 10:30:06 +05:30
Derick Alangi
28cdd564d3
Fix minor typos in test files (#114) 2021-06-23 09:51:58 +05:30
Tiago Cavalcante Trindade
792d08eae7
Move fiber functions to module Fiber (#113) 2021-06-23 09:48:15 +05:30
Tiago Cavalcante Trindade
fe45ba3485
Numeric literal starts with decimal point implementation (Fix: #97) 2021-06-23 00:51:19 +05:30
Takashi Idobe
c0f00f6cae
add modeq implementation (#108)
* add modeq implementation

* code review feedback
2021-06-22 17:49:52 +05:30
Thakee Nathees
e177f80410
Merge pull request #107 from Timwi/patch-1
Typo fix
2021-06-22 16:25:54 +05:30
Timwi
7af71640d6
Typo fix 2021-06-22 12:44:05 +02:00
Thakee Nathees
024d673b25
Merge pull request #102 from ThakeeNathees/native-type
Native types & File object implementations.
2021-06-22 15:35:04 +05:30
Thakee Nathees
2b4d3af0a2
Merge pull request #104 from ntnlabs/patch-2
Update README.md
2021-06-22 13:36:25 +05:30
Thakee Nathees
600f972927 Native types & File object implementations. 2021-06-22 13:31:21 +05:30
NTN Labs
3295f0f9de
Update README.md
some language changes
2021-06-22 10:01:06 +02:00