feat(lang): L3 module scope - module, export, friend module
A barrel's 'module NAME' makes its directory a module; a declaration other modules use says 'export'. Private use from another module is an error naming the module and where to mark it; 'friend module' sees everything (a test harness); a file in no module is public and a package keeps its own module. LUDIC_VIS_REPORT=1 lists every violation instead of stopping, so a codebase can be given its exports first. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
0c73287e35
commit
0677aee93f
20 changed files with 55913 additions and 54132 deletions
8
examples/rejected/private_module.ludic
Normal file
8
examples/rejected/private_module.ludic
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
# L3: `add` is private to module bank; calling it from outside the module is refused
|
||||
import "private_bank"
|
||||
program Private {
|
||||
entry {
|
||||
add(5)
|
||||
print(total())
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue