MCPcopy Create free account
hub / github.com/adhocteam/pushup / parseCodeBlock

Method parseCodeBlock

parser.go:940–976  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

938}
939
940func (p *codeParser) parseCodeBlock() *nodeGoCode {
941 result := &nodeGoCode{context: inlineGoCode}
942 if p.peek().tok != token.LBRACE {
943 p.errorf("expected '{', got '%s'", p.peek().tok)
944 }
945 depth := 1
946 p.advance()
947 result.pos.start = p.parser.offset
948 start := p.peek().pos
949 maxread := start
950 lastlit := p.peek().String()
951loop:
952 for {
953 switch p.peek().tok {
954 case token.LBRACE:
955 depth++
956 case token.RBRACE:
957 depth--
958 if depth == 0 {
959 break loop
960 }
961 case token.EOF:
962 p.errorf("unexpected EOF parsing code block")
963 }
964 maxread = p.peek().pos
965 lastlit = p.peek().String()
966 p.advance()
967 }
968 n := (p.file.Offset(maxread) - p.file.Offset(start)) + len(lastlit)
969 if p.peek().tok != token.RBRACE {
970 panic("")
971 }
972 p.advance()
973 result.code = p.sourceFrom(start)[:n]
974 result.pos.end = result.pos.start + n
975 return result
976}
977
978func (p *codeParser) parseImportKeyword() *nodeImport {
979 /*

Callers 1

parseCodeMethod · 0.95

Calls 5

peekMethod · 0.95
errorfMethod · 0.95
advanceMethod · 0.95
sourceFromMethod · 0.95
StringMethod · 0.45

Tested by

no test coverage detected