jordanlanguage
所属分类:编程语言基础
开发工具:Others
文件大小:0KB
下载次数:0
上传日期:2023-08-27 05:29:03
上 传 者:
sh-1993
说明: Jordan编程语言。,
(Jordan programming language.,)
文件列表:
pkg/ (0, 2023-08-26)
pkg/ast/ (0, 2023-08-26)
pkg/ast/tree/ (0, 2023-08-26)
pkg/ast/tree/Expression.go (44, 2023-08-26)
pkg/ast/tree/Literal.go (41, 2023-08-26)
pkg/ast/tree/LiteralBoolean.go (57, 2023-08-26)
pkg/ast/tree/LiteralNumber.go (59, 2023-08-26)
pkg/ast/tree/LiteralString.go (58, 2023-08-26)
pkg/ast/tree/Statement.go (43, 2023-08-26)
pkg/ast/tree/StatementAssign.go (80, 2023-08-26)
pkg/ast/tree/StatementConditional.go (96, 2023-08-26)
pkg/ast/tree/StatementIf.go (110, 2023-08-26)
pkg/ast/tree/StatementKeyword.go (63, 2023-08-26)
pkg/ast/tree/Variable.go (52, 2023-08-26)
pkg/lex/ (0, 2023-08-26)
pkg/lex/Lexer.go (5264, 2023-08-26)
pkg/lex/Lexer_test.go (361, 2023-08-26)
pkg/lex/Token.go (644, 2023-08-26)
pkg/parse/ (0, 2023-08-26)
pkg/parse/Node.go (97, 2023-08-26)
pkg/parse/NodeArray.go (1374, 2023-08-26)
pkg/parse/NodeBlock.go (1155, 2023-08-26)
pkg/parse/NodeBoolean.go (759, 2023-08-26)
pkg/parse/NodeCollection.go (84, 2023-08-26)
pkg/parse/NodeIdentifier.go (739, 2023-08-26)
pkg/parse/NodeKeyword.go (424, 2023-08-26)
pkg/parse/NodeLineEnd.go (306, 2023-08-26)
pkg/parse/NodeNull.go (516, 2023-08-26)
pkg/parse/NodeNumber.go (727, 2023-08-26)
pkg/parse/NodeOperator.go (440, 2023-08-26)
pkg/parse/NodeParentheses.go (474, 2023-08-26)
pkg/parse/NodeString.go (781, 2023-08-26)
pkg/parse/NodeUndefined.go (581, 2023-08-26)
pkg/parse/NodeValue.go (147, 2023-08-26)
pkg/parse/ParseError.go (215, 2023-08-26)
pkg/parse/ParseResult.go (668, 2023-08-26)
pkg/parse/Parse_test.go (380, 2023-08-26)
pkg/parse/Parser.go (5098, 2023-08-26)
# Jordan programming language
## Introductio
Jordan is a programming language that emphasises DSL, type autodetection, code readability, and other features that are not common in most of other languages.
Jordan is written in Go lang.
## Contribution
I warm welcome everyone that wants to contribute in this project.
## Features examples
### Function definition
```
fun helloworld {
print "Hello, world!"
}
fun hello name {
print "Hello $name"
}
helloworld
hello "Filip"
```
### Types aliases and autodetection
```
class Account {
created at
name
}
-- Equavilent to
class Account {
created at: Date
name: string
}
```
### Built in DSL functions
```
print name of accounts where active is true
```
* `name` is a property of accounts
* `active` is a property of accounts
* `accounts` is equavilent to loop over the `account`, english plurals are autodetected.
* `where` is a filtering functions
* `is` is a comparision operator, equavilent to `==`
* `of` is a keyword to specify the object to be used in a functions
### Other features examples
* last line of the function is returning value
* pattern matching
* type inference
* no semilicons needed
* objective and functional programming paradigms are supported
## Roadmap
Currently a proof of concept code was in the implementation.
The next step is to either modify it or rewrite from scratch,
basing on similar concept.
* [ ] Lexer
* [ ] Parser
* [ ] AST
* [ ] Runtime
* [ ] Webassembly compiler
* [ ] Webassembly runtime
* [ ] CLI
* [ ] VSCode extension
* [ ] Neovim extension
近期下载者:
相关文件:
收藏者: