Add bin and edit workflow
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 9s

This commit is contained in:
2026-09-16 13:11:16 -06:00
parent c8ac4fcae5
commit 4cee170d66
17576 changed files with 895740 additions and 2 deletions
@@ -0,0 +1,164 @@
# -*- coding: utf-8 -*- #
# frozen_string_literal: true
# NOTE: This is for Lean 3 (community fork).
module Rouge
module Lexers
class Lean < RegexLexer
title 'Lean'
desc 'The Lean programming language (leanprover.github.io)'
tag 'lean'
aliases 'lean'
filenames '*.lean'
def self.keywords
@keywords ||= Set.new %w(
abbreviation
add_rewrite
alias
assume
axiom
begin
by
calc
calc_refl
calc_subst
calc_trans
#check
coercion
conjecture
constant
constants
context
corollary
def
definition
end
#eval
example
export
expose
exposing
exit
extends
from
fun
have
help
hiding
hott
hypothesis
import
include
including
inductive
infix
infixl
infixr
inline
instance
irreducible
lemma
match
namespace
notation
opaque
opaque_hint
open
options
parameter
parameters
postfix
precedence
prefix
#print
private
protected
#reduce
reducible
renaming
repeat
section
set_option
show
tactic_hint
theorem
universe
universes
using
variable
variables
with
)
end
def self.types
@types ||= %w(
Sort
Prop
Type
)
end
def self.operators
@operators ||= %w(
!= # & && \* \+ - / @ ! ` -\. ->
\. \.\. \.\.\. :: :> ; ;; <
<- = == > _ \| \|\| ~ => <= >=
/\ \/ ∀ Π λ ↔ ∧ ∨ ≠ ≤ ≥ ⊎
¬ ⁻¹ ⬝ ▸ → ∃ ℕ ℤ ≈ × ⌞ ⌟ ≡ ⟨ ⟩
)
end
state :root do
# comments starting after some space
rule %r/\s*--+\s+.*?$/, Comment::Doc
rule %r/"/, Str, :string
rule %r/\d+/, Num::Integer
# special commands or keywords
rule(/#?\w+/) do |m|
match = m[0]
if self.class.keywords.include?(match)
token Keyword
elsif self.class.types.include?(match)
token Keyword::Type
else
token Name
end
end
# special unicode keywords
rule %r/[λ]/, Keyword
# ----------------
# operators rules
# ----------------
rule %r/\:=?/, Text
rule %r/\.[0-9]*/, Operator
rule %r(#{Lean.operators.join('|')}), Operator
# unmatched symbols
rule %r/[\s\(\),\[\]αβ‹›]+/, Text
# show missing matches
rule %r/./, Error
end
state :string do
rule %r/"/, Str, :pop!
rule %r/\\/, Str::Escape, :escape
rule %r/[^\\"]+/, Str
end
state :escape do
rule %r/[nrt"'\\]/, Str::Escape, :pop!
rule %r/x[\da-f]+/i, Str::Escape, :pop!
end
end
end
end