@softpy/compiler
v0.4.2
Published
A minimal CLI to run .spy files
Readme
Softpy Compiler
Softpy is a Python-inspired language that compiles to JavaScript.
Installation
You can install Softpy globally:
npm install -g @softpy/compilerOr use it locally in a project:
npm install @softpy/compiler
npx softpy example.spyUsage
Create a .spy file with your code. For example, example.spy:
# Variables and arithmetic
x = 10
y = 5
z = x + y * 2
# Boolean logic
isValid = True and not False
hasValue = True or False
# Print statement (comma-separated)
print "Result:", z
print x, "+", y, "=", z
# Function calls
print(x, y, z)Run it with:
softpy example.spyLanguage Features
Data Types
- Numbers:
42,123 - Strings:
"Hello, World!" - Booleans:
True,False
Variables
name = "Softpy"
version = 1
isActive = TrueOperators
Arithmetic Operators:
- Addition:
+ - Subtraction:
- - Multiplication:
* - Division:
/ - Modulo:
%
result = 10 + 5 * 2 # Respects operator precedenceLogical Operators:
- AND:
and - OR:
or - NOT:
not
x = True and False
y = not x or TrueExpressions
- Parenthesized expressions for grouping:
(x + y) * z - Operator precedence: Follows standard mathematical rules
- Unary expressions:
not isValid
Statements
Print Statement:
# Comma-separated values
print x, y, z
# Note: print(x, y) syntax not yet supportedFunction Calls:
# Generic function call syntax
myFunc(arg1, arg2)Control Flow
If/Else Statements:
if x > 10:
print("Large")
elif x > 5:
print("Medium")
else:
print("Small")While Loops:
while x > 0:
print(x)
x = x - 1For Loops:
# Range loop
for i in range(10):
print(i)
# Range with start, stop, step
for i in range(0, 20, 2):
print(i)Functions
Function Definition:
func add(a, b):
return a + b
result = add(10, 20)
print(result)Recursion:
func factorial(n):
if n <= 1:
return 1
else:
return n * factorial(n - 1)Comments
# This is a single-line comment
x = 10 # Comments can be inlineCompilation
Softpy compiles to JavaScript:
x = True and not False
print xCompiles to:
let x = true && !false;
console.log(x);Coming Soon
- Lists and dictionaries
- More built-in functions
- Classes and Objects
- Modules and Imports
License
MIT
