// Code generated by golex. DO NOT EDIT.

// Copyright 2019 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.

package cc // import "modernc.org/cc/v3"

func (s *scanner) scan() (r rune) {

yystate0:
	yyrule := -1
	_ = yyrule
	c := s.initScan()

	goto yystart1

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
	}
yystate1:
	c = s.next()
yystart1:
	switch {
	default:
		goto yyabort
	case c == '!':
		goto yystate16
	case c == '"':
		goto yystate18
	case c == '#':
		goto yystate29
	case c == '$' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c == '\u0081':
		goto yystate31
	case c == '%':
		goto yystate41
	case c == '&':
		goto yystate47
	case c == '*':
		goto yystate62
	case c == '+':
		goto yystate64
	case c == '-':
		goto yystate67
	case c == '.':
		goto yystate71
	case c == '/':
		goto yystate85
	case c == ':':
		goto yystate88
	case c == '<':
		goto yystate90
	case c == '=':
		goto yystate96
	case c == '>':
		goto yystate98
	case c == 'L':
		goto yystate102
	case c == '\'':
		goto yystate50
	case c == '\\':
		goto yystate32
	case c == '\n':
		goto yystate14
	case c == '\r':
		goto yystate15
	case c == '\t' || c == '\v' || c == '\f' || c == ' ':
		goto yystate2
	case c == '^':
		goto yystate126
	case c == '|':
		goto yystate128
	case c >= '0' && c <= '9':
		goto yystate74
	}

yystate2:
	c = s.next()
	yyrule = 2
	s.mark = len(s.charBuf)
	switch {
	default:
		goto yyrule2
	case c == '/':
		goto yystate3
	case c == '\t' || c == '\v' || c == '\f' || c == ' ':
		goto yystate2
	}

yystate3:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c == '*':
		goto yystate4
	case c == '/':
		goto yystate13
	}

yystate4:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c == '*':
		goto yystate6
	case c == '\n':
		goto yystate5
	case c >= '\x01' && c <= '\t' || c >= '\v' && c <= ')' || c >= '+' && c <= '\u007f' || c >= '\u0081' && c <= 'ÿ':
		goto yystate4
	}

yystate5:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c == '*':
		goto yystate6
	case c == '\n':
		goto yystate5
	case c == '\u0080':
		goto yystate7
	case c >= '\x01' && c <= '\t' || c >= '\v' && c <= ')' || c >= '+' && c <= '\u007f' || c >= '\u0081' && c <= 'ÿ':
		goto yystate4
	}

yystate6:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c == '*':
		goto yystate6
	case c == '/':
		goto yystate2
	case c == '\n':
		goto yystate5
	case c >= '\x01' && c <= '\t' || c >= '\v' && c <= ')' || c >= '+' && c <= '.' || c >= '0' && c <= '\u007f' || c >= '\u0081' && c <= 'ÿ':
		goto yystate4
	}

yystate7:
	c = s.next()
	yyrule = 3
	s.mark = len(s.charBuf)
	switch {
	default:
		goto yyrule3
	case c == '/':
		goto yystate9
	case c == '\t' || c == '\v' || c == '\f' || c == ' ':
		goto yystate8
	}

yystate8:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c == '/':
		goto yystate9
	case c == '\t' || c == '\v' || c == '\f' || c == ' ':
		goto yystate8
	}

yystate9:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c == '*':
		goto yystate10
	}

yystate10:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c == '*':
		goto yystate12
	case c == '\n':
		goto yystate11
	case c >= '\x01' && c <= '\t' || c >= '\v' && c <= ')' || c >= '+' && c <= '\u007f' || c >= '\u0081' && c <= 'ÿ':
		goto yystate10
	}

yystate11:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c == '*':
		goto yystate12
	case c == '\n':
		goto yystate11
	case c == '\u0080':
		goto yystate7
	case c >= '\x01' && c <= '\t' || c >= '\v' && c <= ')' || c >= '+' && c <= '\u007f' || c >= '\u0081' && c <= 'ÿ':
		goto yystate10
	}

yystate12:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c == '*':
		goto yystate12
	case c == '/':
		goto yystate8
	case c == '\n':
		goto yystate11
	case c >= '\x01' && c <= '\t' || c >= '\v' && c <= ')' || c >= '+' && c <= '.' || c >= '0' && c <= '\u007f' || c >= '\u0081' && c <= 'ÿ':
		goto yystate10
	}

yystate13:
	c = s.next()
	yyrule = 1
	s.mark = len(s.charBuf)
	switch {
	default:
		goto yyrule1
	case c >= '\x01' && c <= '\t' || c >= '\v' && c <= '\u007f' || c >= '\u0081' && c <= 'ÿ':
		goto yystate13
	}

yystate14:
	c = s.next()
	yyrule = 39
	s.mark = len(s.charBuf)
	goto yyrule39

yystate15:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c == '\n':
		goto yystate14
	}

yystate16:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c == '=':
		goto yystate17
	}

yystate17:
	c = s.next()
	yyrule = 4
	s.mark = len(s.charBuf)
	goto yyrule4

yystate18:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c == '"':
		goto yystate19
	case c == '\\':
		goto yystate20
	case c >= '\x01' && c <= '\t' || c >= '\v' && c <= '!' || c >= '#' && c <= '[' || c >= ']' && c <= '\u007f' || c >= '\u0081' && c <= 'ÿ':
		goto yystate18
	}

yystate19:
	c = s.next()
	yyrule = 38
	s.mark = len(s.charBuf)
	goto yyrule38

yystate20:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c == '"' || c == '\'' || c >= '0' && c <= '7' || c == '?' || c == '\\' || c == 'a' || c == 'b' || c == 'e' || c == 'f' || c == 'n' || c == 'r' || c == 't' || c == 'v':
		goto yystate18
	case c == 'U':
		goto yystate21
	case c == 'u':
		goto yystate25
	case c == 'x':
		goto yystate28
	}

yystate21:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate22
	}

yystate22:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate23
	}

yystate23:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate24
	}

yystate24:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate25
	}

yystate25:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate26
	}

yystate26:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate27
	}

yystate27:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate28
	}

yystate28:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate18
	}

yystate29:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c == '#':
		goto yystate30
	}

yystate30:
	c = s.next()
	yyrule = 5
	s.mark = len(s.charBuf)
	goto yyrule5

yystate31:
	c = s.next()
	yyrule = 36
	s.mark = len(s.charBuf)
	switch {
	default:
		goto yyrule36
	case c == '$' || c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c == '\u0081':
		goto yystate31
	case c == '\\':
		goto yystate32
	}

yystate32:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c == 'U':
		goto yystate33
	case c == 'u':
		goto yystate37
	}

yystate33:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate34
	}

yystate34:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate35
	}

yystate35:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate36
	}

yystate36:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate37
	}

yystate37:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate38
	}

yystate38:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate39
	}

yystate39:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate40
	}

yystate40:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate31
	}

yystate41:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c == ':':
		goto yystate42
	case c == '=':
		goto yystate45
	case c == '>':
		goto yystate46
	}

yystate42:
	c = s.next()
	yyrule = 6
	s.mark = len(s.charBuf)
	switch {
	default:
		goto yyrule6
	case c == '%':
		goto yystate43
	}

yystate43:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c == ':':
		goto yystate44
	}

yystate44:
	c = s.next()
	yyrule = 7
	s.mark = len(s.charBuf)
	goto yyrule7

yystate45:
	c = s.next()
	yyrule = 8
	s.mark = len(s.charBuf)
	goto yyrule8

yystate46:
	c = s.next()
	yyrule = 9
	s.mark = len(s.charBuf)
	goto yyrule9

yystate47:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c == '&':
		goto yystate48
	case c == '=':
		goto yystate49
	}

yystate48:
	c = s.next()
	yyrule = 10
	s.mark = len(s.charBuf)
	goto yyrule10

yystate49:
	c = s.next()
	yyrule = 11
	s.mark = len(s.charBuf)
	goto yyrule11

yystate50:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c == '\\':
		goto yystate53
	case c >= '\x01' && c <= '\t' || c >= '\v' && c <= '&' || c >= '(' && c <= '[' || c >= ']' && c <= '\u007f' || c >= '\u0081' && c <= 'ÿ':
		goto yystate51
	}

yystate51:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c == '\'':
		goto yystate52
	case c == '\\':
		goto yystate53
	case c >= '\x01' && c <= '\t' || c >= '\v' && c <= '&' || c >= '(' && c <= '[' || c >= ']' && c <= '\u007f' || c >= '\u0081' && c <= 'ÿ':
		goto yystate51
	}

yystate52:
	c = s.next()
	yyrule = 35
	s.mark = len(s.charBuf)
	goto yyrule35

yystate53:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c == '"' || c == '\'' || c >= '0' && c <= '7' || c == '?' || c == '\\' || c == 'a' || c == 'b' || c == 'e' || c == 'f' || c == 'n' || c == 'r' || c == 't' || c == 'v':
		goto yystate51
	case c == 'U':
		goto yystate54
	case c == 'u':
		goto yystate58
	case c == 'x':
		goto yystate61
	}

yystate54:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate55
	}

yystate55:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate56
	}

yystate56:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate57
	}

yystate57:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate58
	}

yystate58:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate59
	}

yystate59:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate60
	}

yystate60:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate61
	}

yystate61:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate51
	}

yystate62:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c == '=':
		goto yystate63
	}

yystate63:
	c = s.next()
	yyrule = 12
	s.mark = len(s.charBuf)
	goto yyrule12

yystate64:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c == '+':
		goto yystate65
	case c == '=':
		goto yystate66
	}

yystate65:
	c = s.next()
	yyrule = 13
	s.mark = len(s.charBuf)
	goto yyrule13

yystate66:
	c = s.next()
	yyrule = 14
	s.mark = len(s.charBuf)
	goto yyrule14

yystate67:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c == '-':
		goto yystate68
	case c == '=':
		goto yystate69
	case c == '>':
		goto yystate70
	}

yystate68:
	c = s.next()
	yyrule = 15
	s.mark = len(s.charBuf)
	goto yyrule15

yystate69:
	c = s.next()
	yyrule = 16
	s.mark = len(s.charBuf)
	goto yyrule16

yystate70:
	c = s.next()
	yyrule = 17
	s.mark = len(s.charBuf)
	goto yyrule17

yystate71:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c == '.':
		goto yystate72
	case c >= '0' && c <= '9':
		goto yystate74
	}

yystate72:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c == '.':
		goto yystate73
	}

yystate73:
	c = s.next()
	yyrule = 18
	s.mark = len(s.charBuf)
	goto yyrule18

yystate74:
	c = s.next()
	yyrule = 37
	s.mark = len(s.charBuf)
	switch {
	default:
		goto yyrule37
	case 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 == '\u0081':
		goto yystate74
	case c == 'E' || c == 'P' || c == 'e' || c == 'p':
		goto yystate75
	case c == '\\':
		goto yystate76
	}

yystate75:
	c = s.next()
	yyrule = 37
	s.mark = len(s.charBuf)
	switch {
	default:
		goto yyrule37
	case c == '$' || 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 == '\u0081':
		goto yystate74
	case c == 'E' || c == 'P' || c == 'e' || c == 'p':
		goto yystate75
	case c == '\\':
		goto yystate76
	}

yystate76:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c == 'U':
		goto yystate77
	case c == 'u':
		goto yystate81
	}

yystate77:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate78
	}

yystate78:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate79
	}

yystate79:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate80
	}

yystate80:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate81
	}

yystate81:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate82
	}

yystate82:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate83
	}

yystate83:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate84
	}

yystate84:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate74
	}

yystate85:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c == '*':
		goto yystate4
	case c == '/':
		goto yystate86
	case c == '=':
		goto yystate87
	}

yystate86:
	c = s.next()
	yyrule = 1
	s.mark = len(s.charBuf)
	switch {
	default:
		goto yyrule1
	case c >= '\x01' && c <= '\t' || c >= '\v' && c <= '\u007f' || c >= '\u0081' && c <= 'ÿ':
		goto yystate86
	}

yystate87:
	c = s.next()
	yyrule = 19
	s.mark = len(s.charBuf)
	goto yyrule19

yystate88:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c == '>':
		goto yystate89
	}

yystate89:
	c = s.next()
	yyrule = 20
	s.mark = len(s.charBuf)
	goto yyrule20

yystate90:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c == '%':
		goto yystate91
	case c == ':':
		goto yystate92
	case c == '<':
		goto yystate93
	case c == '=':
		goto yystate95
	}

yystate91:
	c = s.next()
	yyrule = 21
	s.mark = len(s.charBuf)
	goto yyrule21

yystate92:
	c = s.next()
	yyrule = 22
	s.mark = len(s.charBuf)
	goto yyrule22

yystate93:
	c = s.next()
	yyrule = 23
	s.mark = len(s.charBuf)
	switch {
	default:
		goto yyrule23
	case c == '=':
		goto yystate94
	}

yystate94:
	c = s.next()
	yyrule = 24
	s.mark = len(s.charBuf)
	goto yyrule24

yystate95:
	c = s.next()
	yyrule = 25
	s.mark = len(s.charBuf)
	goto yyrule25

yystate96:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c == '=':
		goto yystate97
	}

yystate97:
	c = s.next()
	yyrule = 26
	s.mark = len(s.charBuf)
	goto yyrule26

yystate98:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c == '=':
		goto yystate99
	case c == '>':
		goto yystate100
	}

yystate99:
	c = s.next()
	yyrule = 27
	s.mark = len(s.charBuf)
	goto yyrule27

yystate100:
	c = s.next()
	yyrule = 28
	s.mark = len(s.charBuf)
	switch {
	default:
		goto yyrule28
	case c == '=':
		goto yystate101
	}

yystate101:
	c = s.next()
	yyrule = 29
	s.mark = len(s.charBuf)
	goto yyrule29

yystate102:
	c = s.next()
	yyrule = 36
	s.mark = len(s.charBuf)
	switch {
	default:
		goto yyrule36
	case c == '"':
		goto yystate103
	case c == '$' || c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c == '\u0081':
		goto yystate31
	case c == '\'':
		goto yystate114
	case c == '\\':
		goto yystate32
	}

yystate103:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c == '"':
		goto yystate104
	case c == '\\':
		goto yystate105
	case c >= '\x01' && c <= '\t' || c >= '\v' && c <= '!' || c >= '#' && c <= '[' || c >= ']' && c <= '\u007f' || c >= '\u0081' && c <= 'ÿ':
		goto yystate103
	}

yystate104:
	c = s.next()
	yyrule = 33
	s.mark = len(s.charBuf)
	goto yyrule33

yystate105:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c == '"' || c == '\'' || c >= '0' && c <= '7' || c == '?' || c == '\\' || c == 'a' || c == 'b' || c == 'e' || c == 'f' || c == 'n' || c == 'r' || c == 't' || c == 'v':
		goto yystate103
	case c == 'U':
		goto yystate106
	case c == 'u':
		goto yystate110
	case c == 'x':
		goto yystate113
	}

yystate106:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate107
	}

yystate107:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate108
	}

yystate108:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate109
	}

yystate109:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate110
	}

yystate110:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate111
	}

yystate111:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate112
	}

yystate112:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate113
	}

yystate113:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate103
	}

yystate114:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c == '\\':
		goto yystate117
	case c >= '\x01' && c <= '\t' || c >= '\v' && c <= '&' || c >= '(' && c <= '[' || c >= ']' && c <= '\u007f' || c >= '\u0081' && c <= 'ÿ':
		goto yystate115
	}

yystate115:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c == '\'':
		goto yystate116
	case c == '\\':
		goto yystate117
	case c >= '\x01' && c <= '\t' || c >= '\v' && c <= '&' || c >= '(' && c <= '[' || c >= ']' && c <= '\u007f' || c >= '\u0081' && c <= 'ÿ':
		goto yystate115
	}

yystate116:
	c = s.next()
	yyrule = 34
	s.mark = len(s.charBuf)
	goto yyrule34

yystate117:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c == '"' || c == '\'' || c >= '0' && c <= '7' || c == '?' || c == '\\' || c == 'a' || c == 'b' || c == 'e' || c == 'f' || c == 'n' || c == 'r' || c == 't' || c == 'v':
		goto yystate115
	case c == 'U':
		goto yystate118
	case c == 'u':
		goto yystate122
	case c == 'x':
		goto yystate125
	}

yystate118:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate119
	}

yystate119:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate120
	}

yystate120:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate121
	}

yystate121:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate122
	}

yystate122:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate123
	}

yystate123:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate124
	}

yystate124:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate125
	}

yystate125:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f':
		goto yystate115
	}

yystate126:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c == '=':
		goto yystate127
	}

yystate127:
	c = s.next()
	yyrule = 30
	s.mark = len(s.charBuf)
	goto yyrule30

yystate128:
	c = s.next()
	switch {
	default:
		goto yyabort
	case c == '=':
		goto yystate129
	case c == '|':
		goto yystate130
	}

yystate129:
	c = s.next()
	yyrule = 31
	s.mark = len(s.charBuf)
	goto yyrule31

yystate130:
	c = s.next()
	yyrule = 32
	s.mark = len(s.charBuf)
	goto yyrule32

yyrule1: // ({white-space}|{comment})*{line-comment}
yyrule2: // ({white-space}|{comment})+{line-comment}?
	{

		return ' '
	}
yyrule3: // (({white-space}|{comment})*{comment-not-terminated})+
	{

		return s.unterminatedComment()
	}
yyrule4: // "!="
	{
		return NEQ
	}
yyrule5: // "##"
	{
		return PPPASTE
	}
yyrule6: // "%:"
	{
		return '#'
	}
yyrule7: // "%:%:"
	{
		return PPPASTE
	}
yyrule8: // "%="
	{
		return MODASSIGN
	}
yyrule9: // "%>"
	{
		return '}'
	}
yyrule10: // "&&"
	{
		return ANDAND
	}
yyrule11: // "&="
	{
		return ANDASSIGN
	}
yyrule12: // "*="
	{
		return MULASSIGN
	}
yyrule13: // "++"
	{
		return INC
	}
yyrule14: // "+="
	{
		return ADDASSIGN
	}
yyrule15: // "--"
	{
		return DEC
	}
yyrule16: // "-="
	{
		return SUBASSIGN
	}
yyrule17: // "->"
	{
		return ARROW
	}
yyrule18: // "..."
	{
		return DDD
	}
yyrule19: // "/="
	{
		return DIVASSIGN
	}
yyrule20: // ":>"
	{
		return ']'
	}
yyrule21: // "<%"
	{
		return '{'
	}
yyrule22: // "<:"
	{
		return '['
	}
yyrule23: // "<<"
	{
		return LSH
	}
yyrule24: // "<<="
	{
		return LSHASSIGN
	}
yyrule25: // "<="
	{
		return LEQ
	}
yyrule26: // "=="
	{
		return EQ
	}
yyrule27: // ">="
	{
		return GEQ
	}
yyrule28: // ">>"
	{
		return RSH
	}
yyrule29: // ">>="
	{
		return RSHASSIGN
	}
yyrule30: // "^="
	{
		return XORASSIGN
	}
yyrule31: // "|="
	{
		return ORASSIGN
	}
yyrule32: // "||"
	{
		return OROR
	}
yyrule33: // L{string-literal}
	{
		return LONGSTRINGLITERAL
	}
yyrule34: // L{character-constant}
	{
		return LONGCHARCONST
	}
yyrule35: // {character-constant}
	{
		return CHARCONST
	}
yyrule36: // {identifier}
	{
		return IDENTIFIER
	}
yyrule37: // {pp-number}
	{
		return PPNUMBER
	}
yyrule38: // {string-literal}
	{
		return STRINGLITERAL
	}
yyrule39: // \r?\n
	if true { // avoid go vet determining the below panic will not be reached
		return '\n'
	}
	panic("unreachable")

yyabort: // no lexem recognized
	//
	// silence unused label errors for build and satisfy go vet reachability analysis
	//
	{
		if false {
			goto yyabort
		}
		if false {
			goto yystate0
		}
		if false {
			goto yystate1
		}
	}

	if c, ok := s.abort(); ok {
		return rune(c)
	}

	goto yyAction
}