Documentation

Lake.DSL.Meta

Syntax for elaboration time control flow.

The do command syntax groups multiple similarly indented commands together. The group can then be passed to another command that usually only accepts a single command (e.g., meta if).

Instances For
    Instances For

      The meta if command has two forms:

      meta if  then 
      meta if  then  else 
      

      It expands to the command a if the term c evaluates to true (at elaboration time). Otherwise, it expands to command b (if an else clause is provided).

      One can use this command to specify, for example, external library targets only available on specific platforms:

      meta if System.Platform.isWindows then
      extern_lib winOnlyLib := ...
      else meta if System.Platform.isOSX then
      extern_lib macOnlyLib := ...
      else
      extern_lib linuxOnlyLib := ...
      
      Instances For