a59367ba61
Introduces the `#use` preprocessor directive, allowing Myc scripts to explicitly declare dependencies on other Myc libraries. This change moves dependency management from a command-line argument to an in-script declaration, ensuring scripts are self-contained and can correctly resolve macros and other symbols. Key features include: - Declarations at the beginning of a file, evaluated before parsing. - Support for relative paths and a new `->` separator. - Automatic resolution of dependencies from specified search paths. - Idempotent loading to prevent duplicate parsing and evaluation. - No AST pollution; dependency management is a compile-time concern. The compiler's lexer has been updated to recognize `#` as a comment character, and the environment now manages search paths and loaded modules. This lays the groundwork for more complex library structures and improved code organization.
14 lines
189 B
Plaintext
14 lines
189 B
Plaintext
#use lib->sma
|
|
;; Output: void
|
|
|
|
(do
|
|
(def sma20 (SMA 20))
|
|
|
|
(def n 1000)
|
|
(while (> n 0)
|
|
(do
|
|
(print "val=" n " sma20=" (sma20 n))
|
|
(assign n (- n 1))
|
|
))
|
|
)
|