From bf4f2b6fa03d92ef56e49a67af7058e84a4fe1db Mon Sep 17 00:00:00 2001 From: xushiwei Date: Mon, 13 May 2024 22:02:47 +0800 Subject: [PATCH] py/builtins: todo --- _xtool/llpyg/llpyg.go | 3 ++ py/builtins/builtins.go | 61 +++++++++++++++++++++++++++++++++++ py/builtins/llgo_autogen.lla | Bin 0 -> 574 bytes py/call.go | 2 +- 4 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 py/builtins/builtins.go create mode 100644 py/builtins/llgo_autogen.lla diff --git a/_xtool/llpyg/llpyg.go b/_xtool/llpyg/llpyg.go index eea35c6b..8a098c60 100644 --- a/_xtool/llpyg/llpyg.go +++ b/_xtool/llpyg/llpyg.go @@ -20,6 +20,7 @@ import ( "github.com/goplus/llgo/c" "github.com/goplus/llgo/py" "github.com/goplus/llgo/py/inspect" + // "github.com/goplus/llgo/py/builtins" ) func main() { @@ -49,6 +50,8 @@ func main() { c.Fprintf(c.Stderr, c.Str("-----------------------------------\n")) c.Fprintf(c.Stderr, c.Str("%s: %s\n"), key.CStr(), sig.Str().CStr()) c.Fprintf(c.Stderr, c.Str("%s\n"), doc.CStr()) + // c.Fprintf(c.Stderr, c.Str("-----------------------------------\n")) + // builtins.Help(val) } } } diff --git a/py/builtins/builtins.go b/py/builtins/builtins.go new file mode 100644 index 00000000..d425e862 --- /dev/null +++ b/py/builtins/builtins.go @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package builtins + +import ( + _ "unsafe" + + "github.com/goplus/llgo/py" +) + +const ( + LLGoPackage = "py.inspect" +) + +// https://docs.python.org/3/library/functions.html +// https://docs.python.org/3/library/constants.html + +// print(*objects, sep=' ', end='\n', file=None, flush=False) +// +// Print objects to the text stream file, separated by sep and followed by +// end. sep, end, file, and flush, if present, must be given as keyword +// arguments. +// +// All non-keyword arguments are converted to strings like str() does and +// written to the stream, separated by sep and followed by end. Both sep +// and end must be strings; they can also be None, which means to use the +// default values. If no objects are given, print() will just write end. +// +//go:linkname Print py.print +func Print(objects ...*py.Object) + +//go:linkname PrintEx py.print +func PrintEx(__llgo_kwargs *py.Object, objects ...*py.Object) + +// Invoke the built-in help system. (This function is intended for interactive +// use.) If no argument is given, the interactive help system starts on the +// interpreter console. If the argument is a string, then the string is looked +// up as the name of a module, function, class, method, keyword, or documentation +// topic, and a help page is printed on the console. If the argument is any other +// kind of object, a help page on the object is generated. +// +// Note that if a slash(/) appears in the parameter list of a function when invoking +// help(), it means that the parameters prior to the slash are positional-only. For +// more info, see the FAQ entry on positional-only parameters. +// +//go:linkname Help py.help +func Help(object *py.Object) diff --git a/py/builtins/llgo_autogen.lla b/py/builtins/llgo_autogen.lla new file mode 100644 index 0000000000000000000000000000000000000000..3169e1521c37ab109a5e820db1ab3bc0420e02d4 GIT binary patch literal 574 zcmWIWW@Zs#U|`^2n7(Fh#NnJ3-Cc|f4E-z&4Ezi-3^_UJ`SFRRCHd*8d3rfHp&^_M z%z5HYY5720TEWf0$nq7a8f?JQDgNHZh62al{}eg=NlaJg?Y3&oQ`~a*y4erzJ~her znCYI&Dk;JnJMQ1TX}>l~RQs;C*~v4;{&m7deBplThfddj5ciW3mJhNG&a=&*v;4}r zPAT*6vn%KFxF+8gzPL+7BokQy42f2YMmL5jEt*ru5?|WSZ3CmW|a7y@Z?RK_?@ku`|(*J2ib@=(_)24<%20Jw%nP$`S-`?JbeGoNlLt$_O?%p zRXk@g_l>JPiVr{jQ}5R04U>9mXIeIU!z-a_a}uuHV&1-pd%nTZeMhY&ez)JBKRsIF zbaKL!pL}`$