diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2017-08-28 15:59:22 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2017-09-02 13:06:53 +0200 |
| commit | a7206b24cac96c08aecf2f3b4cc3c2e555eec708 (patch) | |
| tree | 80c678141148ce2eafaab5617f168bd840b8c8a6 /pkg/ast/scanner.go | |
| parent | aa51461a34f998908d10f551615ad242bdff8fe9 (diff) | |
pkg/compiler: check and generate types
Move most of the logic from sysgen to pkg/compiler.
Update #217
Diffstat (limited to 'pkg/ast/scanner.go')
| -rw-r--r-- | pkg/ast/scanner.go | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/pkg/ast/scanner.go b/pkg/ast/scanner.go index f1573350b..6dab16183 100644 --- a/pkg/ast/scanner.go +++ b/pkg/ast/scanner.go @@ -134,19 +134,19 @@ func (s *scanner) Scan() (tok token, lit string, pos Pos) { s.next() case s.ch == '`': tok = tokCExpr - for s.next(); s.ch != '`'; s.next() { - if s.ch == 0 || s.ch == '\n' { - s.Error(pos, "C expression is not terminated") - break - } + for s.next(); s.ch != '`' && s.ch != '\n'; s.next() { + } + if s.ch == '\n' { + s.Error(pos, "C expression is not terminated") + } else { + lit = string(s.data[pos.Off+1 : s.off]) + s.next() } - lit = string(s.data[pos.Off+1 : s.off]) - s.next() case s.prev2 == tokDefine && s.prev1 == tokIdent: // Note: the old form for C expressions, not really lexable. // TODO(dvyukov): get rid of this eventually. tok = tokCExpr - for s.next(); s.ch != '\n'; s.next() { + for ; s.ch != '\n'; s.next() { } lit = string(s.data[pos.Off:s.off]) case s.ch == '#': |
