special.go 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package checker
  2. import "kumachan/loader"
  3. const IgnoreMark = "_"
  4. const TextPlaceholder = '#'
  5. const BadIndex = ^(uint(0))
  6. /* should be consistent with `stdlib/core.km` */
  7. var __EffectSingleValue = CoreSymbol("Effect")
  8. var __DoType = NamedType {
  9. Name: __EffectSingleValue,
  10. Args: []Type { AnonymousType { Unit{} }, AnonymousType { Unit{} } },
  11. }
  12. var __Bool = CoreSymbol("Bool")
  13. var __Yes uint = 0
  14. // var __Maybe = CoreSymbol("Maybe")
  15. // var __Just uint = 0
  16. // var __Nothing uint = 1
  17. var __Float = CoreSymbol("Float")
  18. var __String = CoreSymbol("String")
  19. var __Array = CoreSymbol("Array")
  20. var __Integer = CoreSymbol("Integer")
  21. var __Natural = CoreSymbol("Natural")
  22. var __Int64 = CoreSymbol("Int64")
  23. var __Uint64 = CoreSymbol("Uint64")
  24. var __Qword = CoreSymbol("Qword")
  25. var __Int32 = CoreSymbol("Int32")
  26. var __Uint32 = CoreSymbol("Uint32")
  27. var __Dword = CoreSymbol("Dword")
  28. var __Char = CoreSymbol("Char")
  29. var __Int16 = CoreSymbol("Int16")
  30. var __Uint16 = CoreSymbol("Uint16")
  31. var __Word = CoreSymbol("Word")
  32. var __Int8 = CoreSymbol("Int8")
  33. var __Uint8 = CoreSymbol("Uint8")
  34. var __Byte = CoreSymbol("Byte")
  35. var __Bit = CoreSymbol("Bit")
  36. var __IntegerTypes = []loader.Symbol {
  37. __Integer, __Natural,
  38. __Int64, __Uint64, __Qword,
  39. __Int32, __Uint32, __Dword, __Char,
  40. __Int16, __Uint16, __Word,
  41. __Int8, __Uint8, __Byte,
  42. __Bit,
  43. }
  44. var __IntegerTypeMap = (func() map[loader.Symbol]string {
  45. var int_type_map = make(map[loader.Symbol]string)
  46. for _, sym := range __IntegerTypes {
  47. int_type_map[sym] = sym.SymbolName
  48. }
  49. return int_type_map
  50. })()
  51. func CoreSymbol(name string) loader.Symbol {
  52. return loader.NewSymbol(loader.CoreModule, name)
  53. }