12345678910111213141516171819202122232425262728293031323334 |
- package b
-
- import (
- . "github.com/alecthomas/chroma" // nolint
- "github.com/alecthomas/chroma/lexers/internal"
- )
-
- // Brainfuck lexer.
- var Brainfuck = internal.Register(MustNewLexer(
- &Config{
- Name: "Brainfuck",
- Aliases: []string{"brainfuck", "bf"},
- Filenames: []string{"*.bf", "*.b"},
- MimeTypes: []string{"application/x-brainfuck"},
- },
- Rules{
- "common": {
- {`[.,]+`, NameTag, nil},
- {`[+-]+`, NameBuiltin, nil},
- {`[<>]+`, NameVariable, nil},
- {`[^.,+\-<>\[\]]+`, Comment, nil},
- },
- "root": {
- {`\[`, Keyword, Push("loop")},
- {`\]`, Error, nil},
- Include("common"),
- },
- "loop": {
- {`\[`, Keyword, Push()},
- {`\]`, Keyword, Pop(1)},
- Include("common"),
- },
- },
- ))
|