runtime: Move print functions to separate file
Этот коммит содержится в:
родитель
cf9cea7a0d
коммит
75fce0f949
2 изменённых файлов: 48 добавлений и 44 удалений
48
src/runtime/print.go
Обычный файл
48
src/runtime/print.go
Обычный файл
|
@ -0,0 +1,48 @@
|
|||
|
||||
package runtime
|
||||
|
||||
// #include <stdio.h>
|
||||
import "C"
|
||||
|
||||
func printstring(s string) {
|
||||
for i := 0; i < len(s); i++ {
|
||||
C.putchar(C.int(s[i]))
|
||||
}
|
||||
}
|
||||
|
||||
func printint(n int) {
|
||||
// Print integer in signed big-endian base-10 notation, for humans to
|
||||
// read.
|
||||
// TODO: don't recurse, but still be compact (and don't divide/mod
|
||||
// more than necessary).
|
||||
if n < 0 {
|
||||
C.putchar('-')
|
||||
n = -n
|
||||
}
|
||||
prevdigits := n / 10
|
||||
if prevdigits != 0 {
|
||||
printint(prevdigits)
|
||||
}
|
||||
C.putchar(C.int((n % 10) + '0'))
|
||||
}
|
||||
|
||||
func printbyte(c uint8) {
|
||||
C.putchar(C.int(c))
|
||||
}
|
||||
|
||||
func printspace() {
|
||||
C.putchar(' ')
|
||||
}
|
||||
|
||||
func printnl() {
|
||||
C.putchar('\n')
|
||||
}
|
||||
|
||||
func printitf(msg interface{}) {
|
||||
switch msg := msg.(type) {
|
||||
case string:
|
||||
print(msg)
|
||||
default:
|
||||
print("???")
|
||||
}
|
||||
}
|
|
@ -1,55 +1,11 @@
|
|||
|
||||
package runtime
|
||||
|
||||
// #include <stdio.h>
|
||||
// #include <stdlib.h>
|
||||
import "C"
|
||||
|
||||
const Compiler = "tgo"
|
||||
|
||||
func printstring(s string) {
|
||||
for i := 0; i < len(s); i++ {
|
||||
C.putchar(C.int(s[i]))
|
||||
}
|
||||
}
|
||||
|
||||
func printint(n int) {
|
||||
// Print integer in signed big-endian base-10 notation, for humans to
|
||||
// read.
|
||||
// TODO: don't recurse, but still be compact (and don't divide/mod
|
||||
// more than necessary).
|
||||
if n < 0 {
|
||||
C.putchar('-')
|
||||
n = -n
|
||||
}
|
||||
prevdigits := n / 10
|
||||
if prevdigits != 0 {
|
||||
printint(prevdigits)
|
||||
}
|
||||
C.putchar(C.int((n % 10) + '0'))
|
||||
}
|
||||
|
||||
func printbyte(c uint8) {
|
||||
C.putchar(C.int(c))
|
||||
}
|
||||
|
||||
func printspace() {
|
||||
C.putchar(' ')
|
||||
}
|
||||
|
||||
func printnl() {
|
||||
C.putchar('\n')
|
||||
}
|
||||
|
||||
func printitf(msg interface{}) {
|
||||
switch msg := msg.(type) {
|
||||
case string:
|
||||
print(msg)
|
||||
default:
|
||||
print("???")
|
||||
}
|
||||
}
|
||||
|
||||
func _panic(message interface{}) {
|
||||
printstring("panic: ")
|
||||
printitf(message)
|
||||
|
|
Загрузка…
Создание таблицы
Сослаться в новой задаче