3 Star 0 Fork 0

依赖极速下载/cc

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
scanner.go 23.01 KB
一键复制 编辑 原始数据 按行查看 历史
Jan Mercl 提交于 2018-07-02 01:14 +08:00 . v2: Make tests pass.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520
// 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"
"github.com/cznic/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
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/mirrors_addons/cc.git
git@gitee.com:mirrors_addons/cc.git
mirrors_addons
cc
cc
d673e9b70d4d

搜索帮助