Skip to content

Instantly share code, notes, and snippets.

@felipensp
Created March 6, 2012 02:20
Show Gist options
  • Save felipensp/1982941 to your computer and use it in GitHub Desktop.
Save felipensp/1982941 to your computer and use it in GitHub Desktop.
pygment scanner
# -*- coding: utf-8 -*-
"""
pygments.lexers.clever
~~~~~~~~~~~~~~~~~~~~~
Lexer for Clever programming language
Written by Clever Team
"""
import re
from pygments.lexer import RegexLexer, bygroups
from pygments.lexers.agile import PythonLexer
from pygments.token import *
__all__ = ['CleverLexer']
class CleverLexer(RegexLexer):
name = 'clever'
aliases = ['clever']
filenames = ['*.clv']
flags = re.DOTALL
ws = r'(\s*)'
typename = r'([A-Z]\w*)'
varname = r'([a-z]\w*)'
literal = r'(\d+|"[^"]+")'
string = r'("[^"]+")'
args = r'(\([^)]*\))'
module = r'([a-z]+(?:\.[a-z]+)*)'
tokens = {
'root': [
(r'[\r\n]+', Text),
(string + '(\.)' + varname + args,
bygroups(Literal.String, Text, Name, Text)),
(r'(const)(\s*)' + typename + '(\s*)(\w+)(\s*)(=)(\s*)(\d+)(;)$',
bygroups(Keyword, Text, Name.Class, Text, Name, Text, Operator, Text, Literal, Text))
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment