initial commit

This commit is contained in:
Davidson Gomes
2024-10-30 11:19:09 -03:00
commit 8654a31a4d
3744 changed files with 585542 additions and 0 deletions
@@ -0,0 +1,96 @@
"""
pygments.lexers.openscad
~~~~~~~~~~~~~~~~~~~~~~~~
Lexers for the OpenSCAD languages.
:copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
from pygments.lexer import RegexLexer, bygroups, words, include
from pygments.token import Text, Comment, Punctuation, Operator, Keyword, Name, Number, Whitespace, Literal, String
__all__ = ['OpenScadLexer']
class OpenScadLexer(RegexLexer):
"""For openSCAD code.
"""
name = "OpenSCAD"
url = "https://openscad.org/"
aliases = ["openscad"]
filenames = ["*.scad"]
mimetypes = ["application/x-openscad"]
version_added = '2.16'
tokens = {
"root": [
(r"[^\S\n]+", Whitespace),
(r'//', Comment.Single, 'comment-single'),
(r'/\*', Comment.Multiline, 'comment-multi'),
(r"[{}\[\]\(\),;:]", Punctuation),
(r"[*!#%\-+=?/]", Operator),
(r"<=|<|==|!=|>=|>|&&|\|\|", Operator),
(r"\$(f[asn]|t|vp[rtd]|children)", Operator),
(r"(undef|PI)\b", Keyword.Constant),
(
r"(use|include)((?:\s|\\\\s)+)",
bygroups(Keyword.Namespace, Text),
"includes",
),
(r"(module)(\s*)([^\s\(]+)",
bygroups(Keyword.Namespace, Whitespace, Name.Namespace)),
(r"(function)(\s*)([^\s\(]+)",
bygroups(Keyword.Declaration, Whitespace, Name.Function)),
(words(("true", "false"), prefix=r"\b", suffix=r"\b"), Literal),
(words((
"function", "module", "include", "use", "for",
"intersection_for", "if", "else", "return"
), prefix=r"\b", suffix=r"\b"), Keyword
),
(words((
"circle", "square", "polygon", "text", "sphere", "cube",
"cylinder", "polyhedron", "translate", "rotate", "scale",
"resize", "mirror", "multmatrix", "color", "offset", "hull",
"minkowski", "union", "difference", "intersection", "abs",
"sign", "sin", "cos", "tan", "acos", "asin", "atan", "atan2",
"floor", "round", "ceil", "ln", "log", "pow", "sqrt", "exp",
"rands", "min", "max", "concat", "lookup", "str", "chr",
"search", "version", "version_num", "norm", "cross",
"parent_module", "echo", "import", "import_dxf",
"dxf_linear_extrude", "linear_extrude", "rotate_extrude",
"surface", "projection", "render", "dxf_cross",
"dxf_dim", "let", "assign", "len"
), prefix=r"\b", suffix=r"\b"),
Name.Builtin
),
(r"\bchildren\b", Name.Builtin.Pseudo),
(r'""".*?"""', String.Double),
(r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
(r"-?\d+(\.\d+)?(e[+-]?\d+)?", Number),
(r"\w+", Name),
],
"includes": [
(
r"(<)([^>]*)(>)",
bygroups(Punctuation, Comment.PreprocFile, Punctuation),
),
],
'comment': [
(r':param: [a-zA-Z_]\w*|:returns?:|(FIXME|MARK|TODO):',
Comment.Special)
],
'comment-single': [
(r'\n', Text, '#pop'),
include('comment'),
(r'[^\n]+', Comment.Single)
],
'comment-multi': [
include('comment'),
(r'[^*/]+', Comment.Multiline),
(r'/\*', Comment.Multiline, '#push'),
(r'\*/', Comment.Multiline, '#pop'),
(r'[*/]', Comment.Multiline)
],
}