// Code generated by golex. DO NOT EDIT. // Copyright 2017 The CC Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Based on [0], 6.4. // // [0]: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf package cc import ( "fmt" "modernc.org/golex/lex" ) const ( _ = iota scCOMMENT // [`/*`, `*/`] ) func (l *lexer) scan() (r int) { c := l.Enter() yystate0: yyrule := -1 _ = yyrule c = l.Rule0() switch yyt := l.sc; yyt { default: panic(fmt.Errorf(`invalid start condition %d`, yyt)) case 0: // start condition: INITIAL goto yystart1 case 1: // start condition: COMMENT goto yystart123 } goto yystate0 // silence unused label error goto yyAction // silence unused label error yyAction: switch yyrule { case 1: goto yyrule1 case 2: goto yyrule2 case 3: goto yyrule3 case 4: goto yyrule4 case 5: goto yyrule5 case 6: goto yyrule6 case 7: goto yyrule7 case 8: goto yyrule8 case 9: goto yyrule9 case 10: goto yyrule10 case 11: goto yyrule11 case 12: goto yyrule12 case 13: goto yyrule13 case 14: goto yyrule14 case 15: goto yyrule15 case 16: goto yyrule16 case 17: goto yyrule17 case 18: goto yyrule18 case 19: goto yyrule19 case 20: goto yyrule20 case 21: goto yyrule21 case 22: goto yyrule22 case 23: goto yyrule23 case 24: goto yyrule24 case 25: goto yyrule25 case 26: goto yyrule26 case 27: goto yyrule27 case 28: goto yyrule28 case 29: goto yyrule29 case 30: goto yyrule30 case 31: goto yyrule31 case 32: goto yyrule32 case 33: goto yyrule33 case 34: goto yyrule34 case 35: goto yyrule35 case 36: goto yyrule36 case 37: goto yyrule37 case 38: goto yyrule38 case 39: goto yyrule39 case 40: goto yyrule40 case 41: goto yyrule41 case 42: goto yyrule42 case 43: goto yyrule43 } goto yystate1 // silence unused label error yystate1: c = l.Next() yystart1: switch { default: goto yyabort case c == '!': goto yystate3 case c == '"': goto yystate5 case c == '#': goto yystate16 case c == '%': goto yystate20 case c == '&': goto yystate27 case c == '*': goto yystate42 case c == '+': goto yystate44 case c == '-': goto yystate47 case c == '.': goto yystate51 case c == '/': goto yystate65 case c == ':': goto yystate69 case c == '<': goto yystate71 case c == '=': goto yystate77 case c == '>': goto yystate79 case c == 'L': goto yystate93 case c == '\'': goto yystate30 case c == '\\': goto yystate84 case c == '\t' || c == '\v' || c == '\f' || c == ' ': goto yystate2 case c == '\u0080': goto yystate122 case c == '^': goto yystate117 case c == '|': goto yystate119 case c >= '0' && c <= '9': goto yystate54 case c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c == '\u0084': goto yystate83 } yystate2: c = l.Next() yyrule = 1 l.Mark() switch { default: goto yyrule1 case c == '\t' || c == '\v' || c == '\f' || c == ' ': goto yystate2 } yystate3: c = l.Next() switch { default: goto yyabort case c == '=': goto yystate4 } yystate4: c = l.Next() yyrule = 7 l.Mark() goto yyrule7 yystate5: c = l.Next() switch { default: goto yyabort case c == '"': goto yystate6 case c == '\\': goto yystate7 case c >= '\x01' && c <= '\t' || c >= '\v' && c <= '!' || c >= '#' && c <= '[' || c >= ']' && c <= '\u007f' || c >= '\u0081' && c <= 'ÿ': goto yystate5 } yystate6: c = l.Next() yyrule = 43 l.Mark() goto yyrule43 yystate7: c = l.Next() switch { default: goto yyabort case c == '"' || c == '\'' || c >= '0' && c <= '7' || c == '?' || c == '\\' || c == 'a' || c == 'b' || c == 'f' || c == 'n' || c == 'r' || c == 't' || c == 'v': goto yystate5 case c == 'U': goto yystate8 case c == 'u': goto yystate12 case c == 'x': goto yystate15 } yystate8: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate9 } yystate9: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate10 } yystate10: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate11 } yystate11: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate12 } yystate12: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate13 } yystate13: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate14 } yystate14: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate15 } yystate15: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate5 } yystate16: c = l.Next() switch { default: goto yyabort case c == '#': goto yystate17 case c == '%': goto yystate18 } yystate17: c = l.Next() yyrule = 34 l.Mark() goto yyrule34 yystate18: c = l.Next() switch { default: goto yyabort case c == ':': goto yystate19 } yystate19: c = l.Next() yyrule = 35 l.Mark() goto yyrule35 yystate20: c = l.Next() switch { default: goto yyabort case c == ':': goto yystate21 case c == '=': goto yystate25 case c == '>': goto yystate26 } yystate21: c = l.Next() yyrule = 8 l.Mark() switch { default: goto yyrule8 case c == '#': goto yystate22 case c == '%': goto yystate23 } yystate22: c = l.Next() yyrule = 36 l.Mark() goto yyrule36 yystate23: c = l.Next() switch { default: goto yyabort case c == ':': goto yystate24 } yystate24: c = l.Next() yyrule = 37 l.Mark() goto yyrule37 yystate25: c = l.Next() yyrule = 9 l.Mark() goto yyrule9 yystate26: c = l.Next() yyrule = 10 l.Mark() goto yyrule10 yystate27: c = l.Next() switch { default: goto yyabort case c == '&': goto yystate28 case c == '=': goto yystate29 } yystate28: c = l.Next() yyrule = 11 l.Mark() goto yyrule11 yystate29: c = l.Next() yyrule = 12 l.Mark() goto yyrule12 yystate30: c = l.Next() switch { default: goto yyabort case c == '\\': goto yystate33 case c >= '\x01' && c <= '\t' || c >= '\v' && c <= '&' || c >= '(' && c <= '[' || c >= ']' && c <= '\u007f' || c >= '\u0081' && c <= 'ÿ': goto yystate31 } yystate31: c = l.Next() switch { default: goto yyabort case c == '\'': goto yystate32 case c == '\\': goto yystate33 case c >= '\x01' && c <= '\t' || c >= '\v' && c <= '&' || c >= '(' && c <= '[' || c >= ']' && c <= '\u007f' || c >= '\u0081' && c <= 'ÿ': goto yystate31 } yystate32: c = l.Next() yyrule = 40 l.Mark() goto yyrule40 yystate33: c = l.Next() switch { default: goto yyabort case c == '"' || c == '\'' || c >= '0' && c <= '7' || c == '?' || c == '\\' || c == 'a' || c == 'b' || c == 'f' || c == 'n' || c == 'r' || c == 't' || c == 'v': goto yystate31 case c == 'U': goto yystate34 case c == 'u': goto yystate38 case c == 'x': goto yystate41 } yystate34: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate35 } yystate35: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate36 } yystate36: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate37 } yystate37: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate38 } yystate38: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate39 } yystate39: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate40 } yystate40: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate41 } yystate41: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate31 } yystate42: c = l.Next() switch { default: goto yyabort case c == '=': goto yystate43 } yystate43: c = l.Next() yyrule = 13 l.Mark() goto yyrule13 yystate44: c = l.Next() switch { default: goto yyabort case c == '+': goto yystate45 case c == '=': goto yystate46 } yystate45: c = l.Next() yyrule = 14 l.Mark() goto yyrule14 yystate46: c = l.Next() yyrule = 15 l.Mark() goto yyrule15 yystate47: c = l.Next() switch { default: goto yyabort case c == '-': goto yystate48 case c == '=': goto yystate49 case c == '>': goto yystate50 } yystate48: c = l.Next() yyrule = 16 l.Mark() goto yyrule16 yystate49: c = l.Next() yyrule = 17 l.Mark() goto yyrule17 yystate50: c = l.Next() yyrule = 18 l.Mark() goto yyrule18 yystate51: c = l.Next() switch { default: goto yyabort case c == '.': goto yystate52 case c >= '0' && c <= '9': goto yystate54 } yystate52: c = l.Next() switch { default: goto yyabort case c == '.': goto yystate53 } yystate53: c = l.Next() yyrule = 19 l.Mark() goto yyrule19 yystate54: c = l.Next() yyrule = 42 l.Mark() switch { default: goto yyrule42 case c == '.' || c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'O' || c >= 'Q' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'o' || c >= 'q' && c <= 'z' || c == '\u0084': goto yystate54 case c == 'E' || c == 'P' || c == 'e' || c == 'p': goto yystate55 case c == '\\': goto yystate56 } yystate55: c = l.Next() yyrule = 42 l.Mark() switch { default: goto yyrule42 case c == '+' || c == '-' || c == '.' || c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'O' || c >= 'Q' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'o' || c >= 'q' && c <= 'z' || c == '\u0084': goto yystate54 case c == 'E' || c == 'P' || c == 'e' || c == 'p': goto yystate55 case c == '\\': goto yystate56 } yystate56: c = l.Next() switch { default: goto yyabort case c == 'U': goto yystate57 case c == 'u': goto yystate61 } yystate57: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate58 } yystate58: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate59 } yystate59: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate60 } yystate60: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate61 } yystate61: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate62 } yystate62: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate63 } yystate63: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate64 } yystate64: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate54 } yystate65: c = l.Next() switch { default: goto yyabort case c == '*': goto yystate66 case c == '/': goto yystate67 case c == '=': goto yystate68 } yystate66: c = l.Next() yyrule = 3 l.Mark() goto yyrule3 yystate67: c = l.Next() yyrule = 2 l.Mark() switch { default: goto yyrule2 case c >= '\x01' && c <= '\t' || c >= '\v' && c <= '\u007f' || c >= '\u0081' && c <= 'ÿ': goto yystate67 } yystate68: c = l.Next() yyrule = 20 l.Mark() goto yyrule20 yystate69: c = l.Next() switch { default: goto yyabort case c == '>': goto yystate70 } yystate70: c = l.Next() yyrule = 21 l.Mark() goto yyrule21 yystate71: c = l.Next() switch { default: goto yyabort case c == '%': goto yystate72 case c == ':': goto yystate73 case c == '<': goto yystate74 case c == '=': goto yystate76 } yystate72: c = l.Next() yyrule = 22 l.Mark() goto yyrule22 yystate73: c = l.Next() yyrule = 23 l.Mark() goto yyrule23 yystate74: c = l.Next() yyrule = 24 l.Mark() switch { default: goto yyrule24 case c == '=': goto yystate75 } yystate75: c = l.Next() yyrule = 25 l.Mark() goto yyrule25 yystate76: c = l.Next() yyrule = 26 l.Mark() goto yyrule26 yystate77: c = l.Next() switch { default: goto yyabort case c == '=': goto yystate78 } yystate78: c = l.Next() yyrule = 27 l.Mark() goto yyrule27 yystate79: c = l.Next() switch { default: goto yyabort case c == '=': goto yystate80 case c == '>': goto yystate81 } yystate80: c = l.Next() yyrule = 28 l.Mark() goto yyrule28 yystate81: c = l.Next() yyrule = 29 l.Mark() switch { default: goto yyrule29 case c == '=': goto yystate82 } yystate82: c = l.Next() yyrule = 30 l.Mark() goto yyrule30 yystate83: c = l.Next() yyrule = 41 l.Mark() switch { default: goto yyrule41 case c == '$' || c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c == '\u0083' || c == '\u0084': goto yystate83 case c == '\\': goto yystate84 } yystate84: c = l.Next() switch { default: goto yyabort case c == 'U': goto yystate85 case c == 'u': goto yystate89 } yystate85: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate86 } yystate86: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate87 } yystate87: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate88 } yystate88: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate89 } yystate89: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate90 } yystate90: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate91 } yystate91: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate92 } yystate92: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate83 } yystate93: c = l.Next() yyrule = 41 l.Mark() switch { default: goto yyrule41 case c == '"': goto yystate94 case c == '$' || c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c == '\u0083' || c == '\u0084': goto yystate83 case c == '\'': goto yystate105 case c == '\\': goto yystate84 } yystate94: c = l.Next() switch { default: goto yyabort case c == '"': goto yystate95 case c == '\\': goto yystate96 case c >= '\x01' && c <= '\t' || c >= '\v' && c <= '!' || c >= '#' && c <= '[' || c >= ']' && c <= '\u007f' || c >= '\u0081' && c <= 'ÿ': goto yystate94 } yystate95: c = l.Next() yyrule = 39 l.Mark() goto yyrule39 yystate96: c = l.Next() switch { default: goto yyabort case c == '"' || c == '\'' || c >= '0' && c <= '7' || c == '?' || c == '\\' || c == 'a' || c == 'b' || c == 'f' || c == 'n' || c == 'r' || c == 't' || c == 'v': goto yystate94 case c == 'U': goto yystate97 case c == 'u': goto yystate101 case c == 'x': goto yystate104 } yystate97: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate98 } yystate98: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate99 } yystate99: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate100 } yystate100: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate101 } yystate101: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate102 } yystate102: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate103 } yystate103: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate104 } yystate104: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate94 } yystate105: c = l.Next() switch { default: goto yyabort case c == '\\': goto yystate108 case c >= '\x01' && c <= '\t' || c >= '\v' && c <= '&' || c >= '(' && c <= '[' || c >= ']' && c <= '\u007f' || c >= '\u0081' && c <= 'ÿ': goto yystate106 } yystate106: c = l.Next() switch { default: goto yyabort case c == '\'': goto yystate107 case c == '\\': goto yystate108 case c >= '\x01' && c <= '\t' || c >= '\v' && c <= '&' || c >= '(' && c <= '[' || c >= ']' && c <= '\u007f' || c >= '\u0081' && c <= 'ÿ': goto yystate106 } yystate107: c = l.Next() yyrule = 38 l.Mark() goto yyrule38 yystate108: c = l.Next() switch { default: goto yyabort case c == '"' || c == '\'' || c >= '0' && c <= '7' || c == '?' || c == '\\' || c == 'a' || c == 'b' || c == 'f' || c == 'n' || c == 'r' || c == 't' || c == 'v': goto yystate106 case c == 'U': goto yystate109 case c == 'u': goto yystate113 case c == 'x': goto yystate116 } yystate109: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate110 } yystate110: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate111 } yystate111: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate112 } yystate112: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate113 } yystate113: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate114 } yystate114: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate115 } yystate115: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate116 } yystate116: c = l.Next() switch { default: goto yyabort case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': goto yystate106 } yystate117: c = l.Next() switch { default: goto yyabort case c == '=': goto yystate118 } yystate118: c = l.Next() yyrule = 31 l.Mark() goto yyrule31 yystate119: c = l.Next() switch { default: goto yyabort case c == '=': goto yystate120 case c == '|': goto yystate121 } yystate120: c = l.Next() yyrule = 32 l.Mark() goto yyrule32 yystate121: c = l.Next() yyrule = 33 l.Mark() goto yyrule33 yystate122: c = l.Next() yyrule = 6 l.Mark() goto yyrule6 goto yystate123 // silence unused label error yystate123: c = l.Next() yystart123: switch { default: goto yyabort case c == '*': goto yystate125 case c == '\u0080': goto yystate127 case c >= '\x01' && c <= ')' || c >= '+' && c <= '\u007f' || c >= '\u0081' && c <= 'ÿ': goto yystate124 } yystate124: c = l.Next() switch { default: goto yyabort case c == '*': goto yystate125 case c >= '\x01' && c <= ')' || c >= '+' && c <= '\u007f' || c >= '\u0081' && c <= 'ÿ': goto yystate124 } yystate125: c = l.Next() switch { default: goto yyabort case c == '*': goto yystate125 case c == '/': goto yystate126 case c >= '\x01' && c <= ')' || c >= '+' && c <= '.' || c >= '0' && c <= '\u007f' || c >= '\u0081' && c <= 'ÿ': goto yystate124 } yystate126: c = l.Next() yyrule = 4 l.Mark() goto yyrule4 yystate127: c = l.Next() yyrule = 5 l.Mark() goto yyrule5 yyrule1: // [ \t\f\v]+ { return ' ' } yyrule2: // "//"[^\x80\n]* { l.comment(false) return ' ' } yyrule3: // "/*" { l.commentPos0 = l.First.Pos() l.sc = scCOMMENT goto yystate0 } yyrule4: // {comment-close} { l.sc = scINITIAL l.First = lex.NewChar(l.commentPos0, l.First.Rune) l.comment(true) return ' ' } yyrule5: // {eof} { l.errPos(l.commentPos0, "unterminated comment") l.sc = scINITIAL return rune2class(lex.RuneEOF) } yyrule6: // {eof} { return rune2class(lex.RuneEOF) } yyrule7: // "!=" { return NEQ } yyrule8: // "%:" { return '#' } yyrule9: // "%=" { return MODASSIGN } yyrule10: // "%>" { return '}' } yyrule11: // "&&" { return ANDAND } yyrule12: // "&=" { return ANDASSIGN } yyrule13: // "*=" { return MULASSIGN } yyrule14: // "++" { return INC } yyrule15: // "+=" { return ADDASSIGN } yyrule16: // "--" { return DEC } yyrule17: // "-=" { return SUBASSIGN } yyrule18: // "->" { return ARROW } yyrule19: // "..." { return DDD } yyrule20: // "/=" { return DIVASSIGN } yyrule21: // ":>" { return ']' } yyrule22: // "<%" { return '{' } yyrule23: // "<:" { return '[' } yyrule24: // "<<" { return LSH } yyrule25: // "<<=" { return LSHASSIGN } yyrule26: // "<=" { return LEQ } yyrule27: // "==" { return EQ } yyrule28: // ">=" { return GEQ } yyrule29: // ">>" { return RSH } yyrule30: // ">>=" { return RSHASSIGN } yyrule31: // "^=" { return XORASSIGN } yyrule32: // "|=" { return ORASSIGN } yyrule33: // "||" { return OROR } yyrule34: // "##" yyrule35: // "#%:" yyrule36: // "%:#" yyrule37: // "%:%:" { return PPPASTE } yyrule38: // L{character-constant} { return LONGCHARCONST } yyrule39: // L{string-literal} { return LONGSTRINGLITERAL } yyrule40: // {character-constant} { return CHARCONST } yyrule41: // {identifier} { return IDENTIFIER } yyrule42: // {pp-number} { return PPNUMBER } yyrule43: // {string-literal} { return STRINGLITERAL } panic("unreachable") goto yyabort // silence unused label error yyabort: // no lexem recognized if c, ok := l.Abort(); ok { return c } goto yyAction }