Skip to content

Commit

Permalink
mini spec: Keywords
Browse files Browse the repository at this point in the history
  • Loading branch information
xushiwei committed Dec 21, 2024
1 parent 2ca82b9 commit 63b7dff
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 3 deletions.
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ For more details, see [Quick Start](doc/docs.md).
* Approaching natural language expression and intuitive (see [How Go+ simplifies Go's expressions](#how-go-simplifies-gos-expressions)).
* Smallest but Turing-complete syntax set in best practices (see [The Go+ Mini Specification](doc/spec-mini.md)).
* Fully compatible with [Go](https://github.com/golang/go) and can mix Go/Go+ code in the same package (see [The Go+ Full Specification](doc/spec.md) and [Go/Go+ Hybrid Programming](doc/docs.md#gogo-hybrid-programming)).
* Integrating with the C ecosystem including Python and providing limitless possibilities based on [LLGo](https://github.com/goplus/llgo) (see [Support for C/C++ and Python](#support-for-cc-and-python)).
* Integrating with the C ecosystem including Python and providing limitless possibilities based on [LLGo](https://github.com/goplus/llgo) (see [Importing C/C++ and Python libraries](#importing-cc-and-python-libraries)).
* Does not support DSL (Domain-Specific Languages), but supports SDF (Specific Domain Friendliness) (see [Go+ Classfiles](#go-classfiles)).


Expand Down Expand Up @@ -84,7 +84,7 @@ Code style is just the first step. We have made many efforts to make the code mo
For more details, see [The Go+ Mini Specification](doc/spec-mini.md).


## Support for C/C++ and Python
## Importing C/C++ and Python libraries

Go+ can choose different Go compilers as its underlying support. Currently known supported Go compilers include:

Expand Down Expand Up @@ -118,7 +118,7 @@ go 1.21 // llgo 1.0
require github.com/goplus/llgo v0.9.8
```

Based on LLGo, Go+ can support importing libraries written in C/C++ and Python.
Based on LLGo, Go+ can import libraries written in C/C++ and Python.

Here is an example (see [chello](demo/_llgo/chello/hello.gop)) of printing `Hello world` using C's `printf`:

Expand Down
12 changes: 12 additions & 0 deletions doc/spec-mini.md
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,18 @@ Some identifiers are [predeclared](#predeclared-identifiers).

### Keywords

The following keywords are reserved and may not be used as identifiers (TODO: some keywords are allowed as identifiers).

```go
break default func interface select
case defer go map struct
chan else goto package switch
const fallthrough if range type
continue for import return var
```

### Operators and punctuation

TODO

### Integer literals
Expand Down

0 comments on commit 63b7dff

Please sign in to comment.