Sha256: 060d49b04a6283aa69076a14eacdf702f7fd80a26e512a7481a5770a07ea7430
Contents?: true
Size: 1.16 KB
Versions: 40
Compression:
Stored size: 1.16 KB
Contents
# -*- coding: utf-8 -*- # # frozen_string_literal: true module Rouge module Lexers class Brainfuck < RegexLexer tag 'brainfuck' filenames '*.b', '*.bf' mimetypes 'text/x-brainfuck' title "Brainfuck" desc "The Brainfuck programming language" start { push :bol } state :bol do rule %r/\s+/m, Text rule %r/\[/, Comment::Multiline, :comment_multi rule(//) { pop! } end state :root do rule %r/\]/, Error rule %r/\[/, Punctuation, :loop mixin :comment_single mixin :commands end state :comment_multi do rule %r/\[/, Comment::Multiline, :comment_multi rule %r/\]/, Comment::Multiline, :pop! rule %r/[^\[\]]+?/m, Comment::Multiline end state :comment_single do rule %r/[^><+\-.,\[\]]+/, Comment::Single end state :loop do rule %r/\[/, Punctuation, :loop rule %r/\]/, Punctuation, :pop! mixin :comment_single mixin :commands end state :commands do rule %r/[><]+/, Name::Builtin rule %r/[+\-.,]+/, Name::Function end end end end
Version data entries
40 entries across 40 versions & 2 rubygems