Best Syzkaller code snippet using kconfig.skipSpaces
parser.go
Source:parser.go
...37 for p.current != "" && p.current[len(p.current)-1] == '\\' && len(p.data) != 0 {38 p.current = p.current[:len(p.current)-1] + p.readNextLine()39 p.line++40 }41 p.skipSpaces()42 return true43}44func (p *parser) readNextLine() string {45 line := ""46 nextLine := bytes.IndexByte(p.data, '\n')47 if nextLine != -1 {48 line = string(p.data[:nextLine])49 p.data = p.data[nextLine+1:]50 } else {51 line = string(p.data)52 p.data = nil53 }54 return line55}56func (p *parser) skipSpaces() {57 for p.col < len(p.current) && (p.current[p.col] == ' ' || p.current[p.col] == '\t') {58 p.col++59 }60}61func (p *parser) identLevel() int {62 level := 063 for i := 0; i < p.col; i++ {64 level++65 if p.current[i] == '\t' {66 level = (level + 7) & ^767 }68 }69 return level70}71func (p *parser) failf(msg string, args ...interface{}) {72 if p.err == nil {73 p.err = fmt.Errorf("%v:%v:%v: %v\n%v", p.file, p.line, p.col, fmt.Sprintf(msg, args...), p.current)74 }75}76func (p *parser) eol() bool {77 return p.col == len(p.current)78}79func (p *parser) char() byte {80 if p.err != nil {81 return 082 }83 if p.eol() {84 p.failf("unexpected end of line")85 return 086 }87 v := p.current[p.col]88 p.col++89 return v90}91func (p *parser) peek() byte {92 if p.err != nil || p.eol() {93 return 094 }95 return p.current[p.col]96}97func (p *parser) ConsumeLine() string {98 res := p.current[p.col:]99 p.col = len(p.current)100 return res101}102func (p *parser) TryConsume(what string) bool {103 if !strings.HasPrefix(p.current[p.col:], what) {104 return false105 }106 p.col += len(what)107 p.skipSpaces()108 return true109}110func (p *parser) MustConsume(what string) {111 if !p.TryConsume(what) {112 p.failf("expected %q", what)113 }114}115func (p *parser) QuotedString() string {116 var str []byte117 quote := p.char()118 if quote != '"' && quote != '\'' {119 p.failf("expect quoted string")120 }121 for ch := p.char(); ch != quote; ch = p.char() {122 if ch == 0 {123 p.failf("unterminated quoted string")124 break125 }126 if ch == '\\' {127 ch = p.char()128 switch ch {129 case '\'', '"', '\\', 'n':130 str = append(str, ch)131 default:132 p.failf("bad quoted character")133 }134 continue135 }136 str = append(str, ch)137 if ch == '$' && p.peek() == '(' {138 str = append(str, p.Shell()...)139 }140 }141 p.skipSpaces()142 return string(str)143}144func (p *parser) TryQuotedString() (string, bool) {145 if ch := p.peek(); ch == '"' || ch == '\'' {146 return p.QuotedString(), true147 }148 return "", false149}150func (p *parser) Ident() string {151 var str []byte152 for !p.eol() {153 ch := p.peek()154 if ch >= 'a' && ch <= 'z' ||155 ch >= 'A' && ch <= 'Z' ||156 ch >= '0' && ch <= '9' ||157 ch == '_' || ch == '-' {158 str = append(str, ch)159 p.col++160 continue161 }162 break163 }164 if len(str) == 0 {165 p.failf("expected an identifier")166 }167 p.skipSpaces()168 return string(str)169}170func (p *parser) Shell() string {171 start := p.col172 p.MustConsume("(")173 for !p.eol() && p.peek() != ')' {174 if p.peek() == '"' {175 p.QuotedString()176 } else if p.peek() == '(' {177 p.Shell()178 } else {179 p.col++180 }181 }182 if ch := p.char(); ch != ')' {183 p.failf("shell expression is not terminated")184 }185 res := p.current[start:p.col]186 p.skipSpaces()187 return res188}...
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!