github.com/gotranspile/cxgo@v0.3.7/libs/ctype.go (about) 1 package libs 2 3 import ( 4 "unicode" 5 6 "github.com/gotranspile/cxgo/runtime/libc" 7 "github.com/gotranspile/cxgo/types" 8 ) 9 10 const ( 11 ctypeH = "ctype.h" 12 ) 13 14 func init() { 15 RegisterLibrary(ctypeH, func(c *Env) *Library { 16 runeT := c.Go().Rune() 17 boolT := c.Go().Bool() 18 isT := c.FuncTT(boolT, runeT) 19 toT := c.FuncTT(runeT, runeT) 20 return &Library{ 21 Imports: map[string]string{ 22 "libc": RuntimeLibc, 23 "unicode": "unicode", 24 }, 25 Idents: map[string]*types.Ident{ 26 "isalnum": c.NewIdent("isalnum", "libc.IsAlnum", libc.IsAlnum, isT), 27 "isalpha": c.NewIdent("isalpha", "libc.IsAlpha", libc.IsAlpha, isT), 28 //"isascii": c.NewIdent("isascii", "libc.IsASCII", libc.IsASCII, isT), 29 "iscntrl": c.NewIdent("iscntrl", "unicode.IsControl", unicode.IsControl, isT), 30 "isdigit": c.NewIdent("isdigit", "unicode.IsDigit", unicode.IsDigit, isT), 31 "isgraph": c.NewIdent("isgraph", "unicode.IsGraphic", unicode.IsGraphic, isT), 32 "islower": c.NewIdent("islower", "unicode.IsLower", unicode.IsLower, isT), 33 "isprint": c.NewIdent("isprint", "unicode.IsPrint", unicode.IsPrint, isT), 34 "ispunct": c.NewIdent("ispunct", "unicode.IsPunct", unicode.IsPunct, isT), 35 "isspace": c.NewIdent("isspace", "unicode.IsSpace", unicode.IsSpace, isT), 36 "isupper": c.NewIdent("isupper", "unicode.IsUpper", unicode.IsUpper, isT), 37 //"isxdigit": c.NewIdent("isxdigit", "libc.IsXDigit", libc.IsXDigit, isT), 38 //"toascii": c.NewIdent("toascii", "libc.ToASCII", libc.ToASCII, toT), 39 "tolower": c.NewIdent("tolower", "unicode.ToLower", unicode.ToLower, toT), 40 "toupper": c.NewIdent("toupper", "unicode.ToUpper", unicode.ToUpper, toT), 41 }, 42 // TODO 43 Header: ` 44 _cxgo_go_bool isalnum(_cxgo_go_rune); 45 _cxgo_go_bool isalpha(_cxgo_go_rune); 46 _cxgo_go_bool isascii(_cxgo_go_rune); 47 _cxgo_go_bool iscntrl(_cxgo_go_rune); 48 _cxgo_go_bool isdigit(_cxgo_go_rune); 49 _cxgo_go_bool isgraph(_cxgo_go_rune); 50 _cxgo_go_bool islower(_cxgo_go_rune); 51 _cxgo_go_bool isprint(_cxgo_go_rune); 52 _cxgo_go_bool ispunct(_cxgo_go_rune); 53 _cxgo_go_bool isspace(_cxgo_go_rune); 54 _cxgo_go_bool isupper(_cxgo_go_rune); 55 _cxgo_go_bool isxdigit(_cxgo_go_rune); 56 _cxgo_go_rune toascii(_cxgo_go_rune); 57 _cxgo_go_rune tolower(_cxgo_go_rune); 58 _cxgo_go_rune toupper(_cxgo_go_rune); 59 `, 60 } 61 }) 62 }