Uploaded Test files
This commit is contained in:
parent
f584ad9d97
commit
2e81cb7d99
16627 changed files with 2065359 additions and 102444 deletions
101
venv/Lib/site-packages/pygments/lexers/go.py
Normal file
101
venv/Lib/site-packages/pygments/lexers/go.py
Normal file
|
@ -0,0 +1,101 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
pygments.lexers.go
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Lexers for the Google Go language.
|
||||
|
||||
:copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
|
||||
:license: BSD, see LICENSE for details.
|
||||
"""
|
||||
|
||||
import re
|
||||
|
||||
from pygments.lexer import RegexLexer, bygroups, words
|
||||
from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
|
||||
Number, Punctuation
|
||||
|
||||
__all__ = ['GoLexer']
|
||||
|
||||
|
||||
class GoLexer(RegexLexer):
|
||||
"""
|
||||
For `Go <http://golang.org>`_ source.
|
||||
|
||||
.. versionadded:: 1.2
|
||||
"""
|
||||
name = 'Go'
|
||||
filenames = ['*.go']
|
||||
aliases = ['go']
|
||||
mimetypes = ['text/x-gosrc']
|
||||
|
||||
flags = re.MULTILINE | re.UNICODE
|
||||
|
||||
tokens = {
|
||||
'root': [
|
||||
(r'\n', Text),
|
||||
(r'\s+', Text),
|
||||
(r'\\\n', Text), # line continuations
|
||||
(r'//(.*?)\n', Comment.Single),
|
||||
(r'/(\\\n)?[*](.|\n)*?[*](\\\n)?/', Comment.Multiline),
|
||||
(r'(import|package)\b', Keyword.Namespace),
|
||||
(r'(var|func|struct|map|chan|type|interface|const)\b',
|
||||
Keyword.Declaration),
|
||||
(words((
|
||||
'break', 'default', 'select', 'case', 'defer', 'go',
|
||||
'else', 'goto', 'switch', 'fallthrough', 'if', 'range',
|
||||
'continue', 'for', 'return'), suffix=r'\b'),
|
||||
Keyword),
|
||||
(r'(true|false|iota|nil)\b', Keyword.Constant),
|
||||
# It seems the builtin types aren't actually keywords, but
|
||||
# can be used as functions. So we need two declarations.
|
||||
(words((
|
||||
'uint', 'uint8', 'uint16', 'uint32', 'uint64',
|
||||
'int', 'int8', 'int16', 'int32', 'int64',
|
||||
'float', 'float32', 'float64',
|
||||
'complex64', 'complex128', 'byte', 'rune',
|
||||
'string', 'bool', 'error', 'uintptr',
|
||||
'print', 'println', 'panic', 'recover', 'close', 'complex',
|
||||
'real', 'imag', 'len', 'cap', 'append', 'copy', 'delete',
|
||||
'new', 'make'), suffix=r'\b(\()'),
|
||||
bygroups(Name.Builtin, Punctuation)),
|
||||
(words((
|
||||
'uint', 'uint8', 'uint16', 'uint32', 'uint64',
|
||||
'int', 'int8', 'int16', 'int32', 'int64',
|
||||
'float', 'float32', 'float64',
|
||||
'complex64', 'complex128', 'byte', 'rune',
|
||||
'string', 'bool', 'error', 'uintptr'), suffix=r'\b'),
|
||||
Keyword.Type),
|
||||
# imaginary_lit
|
||||
(r'\d+i', Number),
|
||||
(r'\d+\.\d*([Ee][-+]\d+)?i', Number),
|
||||
(r'\.\d+([Ee][-+]\d+)?i', Number),
|
||||
(r'\d+[Ee][-+]\d+i', Number),
|
||||
# float_lit
|
||||
(r'\d+(\.\d+[eE][+\-]?\d+|'
|
||||
r'\.\d*|[eE][+\-]?\d+)', Number.Float),
|
||||
(r'\.\d+([eE][+\-]?\d+)?', Number.Float),
|
||||
# int_lit
|
||||
# -- octal_lit
|
||||
(r'0[0-7]+', Number.Oct),
|
||||
# -- hex_lit
|
||||
(r'0[xX][0-9a-fA-F]+', Number.Hex),
|
||||
# -- decimal_lit
|
||||
(r'(0|[1-9][0-9]*)', Number.Integer),
|
||||
# char_lit
|
||||
(r"""'(\\['"\\abfnrtv]|\\x[0-9a-fA-F]{2}|\\[0-7]{1,3}"""
|
||||
r"""|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}|[^\\])'""",
|
||||
String.Char),
|
||||
# StringLiteral
|
||||
# -- raw_string_lit
|
||||
(r'`[^`]*`', String),
|
||||
# -- interpreted_string_lit
|
||||
(r'"(\\\\|\\"|[^"])*"', String),
|
||||
# Tokens
|
||||
(r'(<<=|>>=|<<|>>|<=|>=|&\^=|&\^|\+=|-=|\*=|/=|%=|&=|\|=|&&|\|\|'
|
||||
r'|<-|\+\+|--|==|!=|:=|\.\.\.|[+\-*/%&])', Operator),
|
||||
(r'[|^<>=!()\[\]{}.,;:]', Punctuation),
|
||||
# identifier
|
||||
(r'[^\W\d]\w*', Name.Other),
|
||||
]
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue