[ragel-users] Go line directives

Dan Kortschak dan.kortschak at adelaide.edu.au
Sun Apr 28 21:32:16 UTC 2013


This would a useful addition to the process though, so it is probably worth filing an issue with the Go project.

On 28/04/2013, at 5:30 PM, "Anton Ageev" <antage at gmail.com> wrote:

> It's interesting undocumented feature. I played with go examples and I got very discouraging behaviour.
> 
> Example 1.
> 
> atoi.go:
> ...
> //line atoi.rl:34
>  neg = ttrue // I change 'true' to 'ttrue' to make error message
>     case 1:
> //line atoi.rl:35
> 
> val = val * 10 + (int(data[p]) - '0')
> ...
> 
> I run `go run atoi.go` and I got following message:
> 
> # command-line-arguments
> atoi.rl:34[/home/antage/workspace/ragel-go/examples/go/atoi.go:163]: undefined: ttrue
> 
> It's looking fine.
> 
> Example 2.
> 
> atoi.go:
> ...
> //line atoi.rl:34
> 
>  neg = ttrue // I change 'true' to 'ttrue' to make error message
>     case 1:
> //line atoi.rl:35
> 
> val = val * 10 + (int(data[p]) - '0')
> ...
> 
> I just add empty line after '//line atoi.rl:34' directive.
> I got following message:
> 
> # command-line-arguments
> atoi.rl:35[/home/antage/workspace/ragel-go/examples/go/atoi.go:164]: undefined: ttrue
> 
> It's not fine. Error isn't at atoi.rl:35, it's at atoi.rl:34.
> 
> Ragel generates a lot of empty lines when embedding an action code. So we can't rely on '//line' directive to locate errors in .rl files.

_______________________________________________
ragel-users mailing list
ragel-users at complang.org
http://www.complang.org/mailman/listinfo/ragel-users



More information about the ragel-users mailing list