Parse command line options as bit flags
Change-Id: I7d7730d9a0c790a4608652590d4e5183132c86a9
diff --git a/cmd/datok.go b/cmd/datok.go
index 00c79eb..08b4160 100644
--- a/cmd/datok.go
+++ b/cmd/datok.go
@@ -22,7 +22,7 @@
Sentences bool `kong:"optional,negatable,default=true,help='Print sentence boundaries'"`
TokenPositions bool `kong:"optional,negatable,default=false,short='p',help='Print token offsets'"`
SentencePositions bool `kong:"optional,negatable,default=false,help='Print sentence offsets'"`
- NewlineAfterEOT bool `kong:"optional,negatable,help='Ignore newline after EOT'"`
+ NewlineAfterEOT bool `kong:"optional,negatable,default=false,help='Ignore newline after EOT'"`
} `kong:"cmd, help='Tokenize a text'"`
}
@@ -72,15 +72,30 @@
os.Exit(1)
}
+ // Create flags parameter based on command line parameters
+ var flags datok.Bits
+ if cli.Tokenize.Tokens {
+ flags |= datok.TOKENS
+ }
+
+ if cli.Tokenize.TokenPositions {
+ flags |= datok.TOKEN_POS
+ }
+
+ if cli.Tokenize.Sentences {
+ flags |= datok.SENTENCES
+ }
+
+ if cli.Tokenize.SentencePositions {
+ flags |= datok.SENTENCE_POS
+ }
+
+ if cli.Tokenize.NewlineAfterEOT {
+ flags |= datok.NEWLINE_AFTER_EOT
+ }
+
// Create token writer based on the options defined
- tw := datok.NewTokenWriterFromOptions(
- os.Stdout,
- cli.Tokenize.TokenPositions,
- cli.Tokenize.Tokens,
- cli.Tokenize.Sentences,
- cli.Tokenize.SentencePositions,
- cli.Tokenize.NewlineAfterEOT,
- )
+ tw := datok.NewTokenWriterFromOptions(os.Stdout, flags)
// Program is running in a pipe
fileInfo, _ := os.Stdin.Stat()