initStdPrint method

void initStdPrint({
  1. StdPrintCallback? impl,
})

Implementation

void initStdPrint({StdPrintCallback? impl}) {
  final token = Token.synthesized('print');
  final defPrint = FuncExpr.named(
    token,
    body: [],
    args: [DeclArg(Token.synthesized('...', type: TokenType.kSpread))],
    idParts: [RawExpr(token)],
  );

  exec() {
    impl?.call(findVarArgs()?.join(' ') ?? 'nil');
  }

  defGlobal(LuaObject.func('print', defPrint, exec)).doc = LuaDoc(
    category: 'Runtime',
    html: '''
        Converts a lua object to a string and then
        displays to console. See <a href="#tostring">tostring</a>.
        ''',
  );
}