diff options
Diffstat (limited to 'src/lib/datafmt/parser.go')
| -rw-r--r-- | src/lib/datafmt/parser.go | 9 | 
1 files changed, 6 insertions, 3 deletions
| diff --git a/src/lib/datafmt/parser.go b/src/lib/datafmt/parser.go index 89fc3cdec..3fe89f915 100644 --- a/src/lib/datafmt/parser.go +++ b/src/lib/datafmt/parser.go @@ -86,7 +86,7 @@ func (p *parser) next() {  func (p *parser) init(src []byte) {  	p.errors.Init(0); -	p.scanner.Init(src, p, 0); +	p.scanner.Init(src, p, scanner.AllowIllegalChars);  // return '@' as token.ILLEGAL w/o error message  	p.next();  // initializes pos, tok, lit  	p.packs = make(map [string] string);  	p.rules = make(map [string] expr); @@ -231,8 +231,11 @@ func (p *parser) parseLiteral() literal {  func (p *parser) parseField() expr {  	var fname string;  	switch p.tok { -	case token.XOR: -		fname = "^"; +	case token.ILLEGAL: +		if string(p.lit) != "@" { +			return nil; +		} +		fname = "@";  		p.next();  	case token.MUL:  		fname = "*"; | 
