MCPcopy Index your code
hub / github.com/Shopify/go-lua / subExpression

Method subExpression

parser.go:258–279  ·  view source on GitHub ↗
(limit int)

Source from the content-addressed store, hash-verified

256const unaryPriority = 8
257
258func (p *parser) subExpression(limit int) (e exprDesc, op int) {
259 p.enterLevel()
260 if u := unaryOp(p.t); u != oprNoUnary {
261 line := p.lineNumber
262 p.next()
263 e, _ = p.subExpression(unaryPriority)
264 e = p.function.Prefix(u, e, line)
265 } else {
266 e = p.simpleExpression()
267 }
268 op = binaryOp(p.t)
269 for op != oprNoBinary && priority[op].left > limit {
270 line := p.lineNumber
271 p.next()
272 e = p.function.Infix(op, e)
273 e2, next := p.subExpression(priority[op].right)
274 e = p.function.Postfix(op, e, e2, line)
275 op = next
276 }
277 p.leaveLevel()
278 return
279}
280
281func (p *parser) expression() (e exprDesc) {
282 e, _ = p.subExpression(0)

Callers 1

expressionMethod · 0.95

Calls 9

enterLevelMethod · 0.95
simpleExpressionMethod · 0.95
leaveLevelMethod · 0.95
unaryOpFunction · 0.85
binaryOpFunction · 0.85
PrefixMethod · 0.80
InfixMethod · 0.80
PostfixMethod · 0.80
nextMethod · 0.45

Tested by

no test coverage detected