Update README.md. Updated main.c.
This commit is contained in:
parent
653736622f
commit
ee3f2919c6
15
README.md
15
README.md
@ -1,6 +1,15 @@
|
|||||||
# SCL: Simple CAS Language
|
# SCL: Simple CAS Language
|
||||||
|
|
||||||
## Syntax
|
## Current State
|
||||||
|
|
||||||
|
The following things are possible:
|
||||||
|
1. Floating-point numbers
|
||||||
|
2. Negative numbers
|
||||||
|
3. Addition
|
||||||
|
4. Subtraction
|
||||||
|
5. Multiplication
|
||||||
|
|
||||||
|
## Syntax (Planned)
|
||||||
|
|
||||||
As one would expect, you can evaluate simple infix expressions:
|
As one would expect, you can evaluate simple infix expressions:
|
||||||
|
|
||||||
@ -20,9 +29,9 @@ You can also define your own functions:
|
|||||||
Symbolic algebra is done in the following manner:
|
Symbolic algebra is done in the following manner:
|
||||||
|
|
||||||
```scl
|
```scl
|
||||||
> f(x) = e^x
|
> f(x) = x^4
|
||||||
> diff(f, x:sym, 2)
|
> diff(f, x:sym, 2)
|
||||||
= e^x
|
= 12x^2
|
||||||
```
|
```
|
||||||
|
|
||||||
SCL will dynamically decide on types, but you can state them explicitly as
|
SCL will dynamically decide on types, but you can state them explicitly as
|
||||||
|
@ -41,11 +41,14 @@ int main(int argc, char** argv) {
|
|||||||
|
|
||||||
if (ln->ln > 0) {
|
if (ln->ln > 0) {
|
||||||
inp = ln->buf;
|
inp = ln->buf;
|
||||||
if (yyparse() == 0) printf("Parsed successfully!\n");
|
if (yyparse() == 0) {
|
||||||
else printf("Parse error.\n");
|
log_dbg("Parsed successfully!\n");
|
||||||
|
} else printf("Parse error.\n");
|
||||||
|
|
||||||
exec_print(exec_expr(root));
|
exec_print(exec_expr(root));
|
||||||
|
#ifdef DBG
|
||||||
ast_print(root);
|
ast_print(root);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
dstr_destroy(ln);
|
dstr_destroy(ln);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user