Golang text/scanner.Position type, IsValid() and String() methods example
package text/scanner
Golang text/scanner.Position type, IsValid() and String() methods usage example
package main
import (
"fmt"
"strings"
"text/scanner"
)
func main() {
code := `<?php
echo "Hello World!";
?>`
codeReader := strings.NewReader(code)
fmt.Println(code)
fmt.Println("------------------------------")
fmt.Println("TOKENS : ")
fmt.Println("------------------------------")
var scn scanner.Scanner
scn.Init(codeReader)
tok := scn.Scan()
pos := scn.Pos()
fmt.Printf("Token : [%v], position [%s] and is position valid? [%v] \n", scn.TokenText(), pos.String(), pos.IsValid())
//fmt.Println(scn.TokenText())
for tok != scanner.EOF {
tok = scn.Scan()
pos = scn.Pos()
fmt.Printf("Token : [%v], position [%s] and is position valid? [%v] \n", scn.TokenText(), pos.String(), pos.IsValid())
//fmt.Println(pos.IsValid())
//fmt.Println(scn.TokenText())
}
}
Sample output :
Token : [<], position [1:2] and is position valid? [true]
Token : [?], position [1:3] and is position valid? [true]
Token : [php], position [1:6] and is position valid? [true]
Token : [echo], position [2:25] and is position valid? [true]
Token : ["Hello World!"], position [2:40] and is position valid? [true]
Token : [;], position [2:41] and is position valid? [true]
Token : [?], position [3:20] and is position valid? [true]
Token : [>], position [3:21] and is position valid? [true]
Token : [], position [3:21] and is position valid? [true]
References :
http://golang.org/pkg/text/scanner/#Position
http://golang.org/pkg/text/scanner/#Position.IsValid
http://golang.org/pkg/text/scanner/#Position.String
https://www.socketloop.com/tutorials/golang-how-to-tokenize-source-code-with-text-scanner-package
Advertisement
Something interesting
Tutorials
+5.5k Golang : If else example and common mistake
+11.9k Golang : How to parse plain email text and process email header?
+12.3k Golang : How to check if a string starts or ends with certain characters or words?
+18.6k Golang : Iterating Elements Over A List
+5.4k Golang : Reclaim memory occupied by make() example
+17.6k Convert JSON to CSV in Golang
+25.7k Golang : How to write CSV data to file
+10.2k Golang : Random Rune generator
+6.3k Golang : How to get capacity of a slice or array?
+16.4k Golang : How to implement two-factor authentication?
+26.9k Golang : Force your program to run with root permissions