Skip to content

Commit a955990

Browse files
committed
extract function lowering helper for compile
1 parent 0c0ccf2 commit a955990

4 files changed

Lines changed: 17 additions & 3 deletions

File tree

docs/architecture.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ Key files:
9191
- `vibes/parser_types.go` (type-expression parsing)
9292
- `vibes/ast.go`
9393
- `vibes/execution_compile.go` (AST lowering into compiled script functions/classes)
94+
- `vibes/execution_compile_functions.go` (function lowering helper for compile)
9495
- `vibes/execution_compile_classes.go` (class/property/method lowering helpers for compile)
9596
- `vibes/execution_compile_errors.go` (parse error aggregation for compile failures)
9697

vibes/execution_compile.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ func (e *Engine) Compile(source string) (*Script, error) {
2020
if _, exists := functions[s.Name]; exists {
2121
return nil, fmt.Errorf("duplicate function %s", s.Name)
2222
}
23-
functions[s.Name] = &ScriptFunction{Name: s.Name, Params: s.Params, ReturnTy: s.ReturnTy, Body: s.Body, Pos: s.Pos(), Exported: s.Exported, Private: s.Private}
23+
functions[s.Name] = compileFunctionDef(s)
2424
case *ClassStmt:
2525
if _, exists := classes[s.Name]; exists {
2626
return nil, fmt.Errorf("duplicate class %s", s.Name)

vibes/execution_compile_classes.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,10 @@ func compileClassDef(stmt *ClassStmt) *ClassDef {
3939
}
4040
}
4141
for _, fn := range stmt.Methods {
42-
classDef.Methods[fn.Name] = &ScriptFunction{Name: fn.Name, Params: fn.Params, ReturnTy: fn.ReturnTy, Body: fn.Body, Pos: fn.Pos(), Private: fn.Private}
42+
classDef.Methods[fn.Name] = compileFunctionDef(fn)
4343
}
4444
for _, fn := range stmt.ClassMethods {
45-
classDef.ClassMethods[fn.Name] = &ScriptFunction{Name: fn.Name, Params: fn.Params, ReturnTy: fn.ReturnTy, Body: fn.Body, Pos: fn.Pos(), Private: fn.Private}
45+
classDef.ClassMethods[fn.Name] = compileFunctionDef(fn)
4646
}
4747
return classDef
4848
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package vibes
2+
3+
func compileFunctionDef(stmt *FunctionStmt) *ScriptFunction {
4+
return &ScriptFunction{
5+
Name: stmt.Name,
6+
Params: stmt.Params,
7+
ReturnTy: stmt.ReturnTy,
8+
Body: stmt.Body,
9+
Pos: stmt.Pos(),
10+
Exported: stmt.Exported,
11+
Private: stmt.Private,
12+
}
13+
}

0 commit comments

Comments
 (0)