PyReprism 0.0.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- PyReprism/__init__.py +0 -0
- PyReprism/languages/__init__.py +147 -0
- PyReprism/languages/_base.py +30 -0
- PyReprism/languages/abap.py +52 -0
- PyReprism/languages/actionscript.py +52 -0
- PyReprism/languages/ada.py +53 -0
- PyReprism/languages/apacheconf.py +52 -0
- PyReprism/languages/apl.py +52 -0
- PyReprism/languages/applescript.py +52 -0
- PyReprism/languages/arduino.py +52 -0
- PyReprism/languages/arff.py +52 -0
- PyReprism/languages/asciidoc.py +52 -0
- PyReprism/languages/asm6502.py +51 -0
- PyReprism/languages/aspnet.py +51 -0
- PyReprism/languages/autohotkey.py +51 -0
- PyReprism/languages/autoit.py +50 -0
- PyReprism/languages/bash.py +52 -0
- PyReprism/languages/basic.py +52 -0
- PyReprism/languages/batch.py +52 -0
- PyReprism/languages/bison.py +52 -0
- PyReprism/languages/brainfuck.py +52 -0
- PyReprism/languages/bro.py +50 -0
- PyReprism/languages/c.py +52 -0
- PyReprism/languages/clike.py +52 -0
- PyReprism/languages/clojure.py +50 -0
- PyReprism/languages/coffeescript.py +50 -0
- PyReprism/languages/cpp.py +52 -0
- PyReprism/languages/crystal.py +50 -0
- PyReprism/languages/csharp.py +53 -0
- PyReprism/languages/csp.py +50 -0
- PyReprism/languages/css.py +50 -0
- PyReprism/languages/css_extras.py +50 -0
- PyReprism/languages/d.py +50 -0
- PyReprism/languages/dart.py +52 -0
- PyReprism/languages/diff.py +49 -0
- PyReprism/languages/django.py +55 -0
- PyReprism/languages/docker.py +50 -0
- PyReprism/languages/eiffel.py +49 -0
- PyReprism/languages/elixir.py +50 -0
- PyReprism/languages/erb.py +0 -0
- PyReprism/languages/erlang.py +50 -0
- PyReprism/languages/flow.py +0 -0
- PyReprism/languages/fortran.py +49 -0
- PyReprism/languages/fsharp.py +49 -0
- PyReprism/languages/gedcom.py +0 -0
- PyReprism/languages/gherkin.py +0 -0
- PyReprism/languages/git.py +0 -0
- PyReprism/languages/glsl.py +0 -0
- PyReprism/languages/go.py +53 -0
- PyReprism/languages/graphql.py +50 -0
- PyReprism/languages/groovy.py +53 -0
- PyReprism/languages/haml.py +50 -0
- PyReprism/languages/handlebars.py +0 -0
- PyReprism/languages/haskell.py +53 -0
- PyReprism/languages/haxe.py +0 -0
- PyReprism/languages/hpkp.py +0 -0
- PyReprism/languages/hsts.py +0 -0
- PyReprism/languages/html.py +50 -0
- PyReprism/languages/ichigojam.py +0 -0
- PyReprism/languages/icon.py +0 -0
- PyReprism/languages/inform7.py +0 -0
- PyReprism/languages/ini.py +41 -0
- PyReprism/languages/io.py +0 -0
- PyReprism/languages/j.py +50 -0
- PyReprism/languages/java.py +53 -0
- PyReprism/languages/javascript.py +53 -0
- PyReprism/languages/jolie.py +50 -0
- PyReprism/languages/json.py +50 -0
- PyReprism/languages/jsx.py +53 -0
- PyReprism/languages/julia.py +53 -0
- PyReprism/languages/keyman.py +0 -0
- PyReprism/languages/kotlin.py +53 -0
- PyReprism/languages/latex.py +50 -0
- PyReprism/languages/less.py +50 -0
- PyReprism/languages/liquid.py +49 -0
- PyReprism/languages/livescript.py +49 -0
- PyReprism/languages/lolcode.py +0 -0
- PyReprism/languages/lua.py +0 -0
- PyReprism/languages/makefile.py +50 -0
- PyReprism/languages/markdown.py +31 -0
- PyReprism/languages/markup.py +50 -0
- PyReprism/languages/markup_templating.py +0 -0
- PyReprism/languages/matlab.py +51 -0
- PyReprism/languages/mel.py +0 -0
- PyReprism/languages/mizar.py +0 -0
- PyReprism/languages/monkey.py +0 -0
- PyReprism/languages/n4js.py +50 -0
- PyReprism/languages/nasm.py +0 -0
- PyReprism/languages/nginx.py +50 -0
- PyReprism/languages/nim.py +0 -0
- PyReprism/languages/nix.py +0 -0
- PyReprism/languages/nsis.py +0 -0
- PyReprism/languages/objectivec.py +49 -0
- PyReprism/languages/ocaml.py +51 -0
- PyReprism/languages/opencl.py +0 -0
- PyReprism/languages/oz.py +0 -0
- PyReprism/languages/parigp.py +0 -0
- PyReprism/languages/parser.py +0 -0
- PyReprism/languages/pascal.py +49 -0
- PyReprism/languages/perl.py +53 -0
- PyReprism/languages/php.py +50 -0
- PyReprism/languages/php_extras.py +0 -0
- PyReprism/languages/plsql.py +0 -0
- PyReprism/languages/powershell.py +0 -0
- PyReprism/languages/processing.py +0 -0
- PyReprism/languages/prolog.py +51 -0
- PyReprism/languages/properties.py +0 -0
- PyReprism/languages/protobuf.py +0 -0
- PyReprism/languages/pug.py +0 -0
- PyReprism/languages/puppet.py +0 -0
- PyReprism/languages/pure.py +0 -0
- PyReprism/languages/python.py +54 -0
- PyReprism/languages/q.py +0 -0
- PyReprism/languages/qore.py +0 -0
- PyReprism/languages/r.py +0 -0
- PyReprism/languages/reason.py +0 -0
- PyReprism/languages/renpy.py +0 -0
- PyReprism/languages/rest.py +0 -0
- PyReprism/languages/rip.py +0 -0
- PyReprism/languages/roboconf.py +0 -0
- PyReprism/languages/ruby.py +50 -0
- PyReprism/languages/rust.py +52 -0
- PyReprism/languages/sas.py +0 -0
- PyReprism/languages/sass.py +0 -0
- PyReprism/languages/scala.py +53 -0
- PyReprism/languages/scheme.py +51 -0
- PyReprism/languages/scss.py +50 -0
- PyReprism/languages/smalltalk.py +51 -0
- PyReprism/languages/smarty.py +0 -0
- PyReprism/languages/soy.py +0 -0
- PyReprism/languages/stylus.py +52 -0
- PyReprism/languages/swift.py +52 -0
- PyReprism/languages/tcl.py +0 -0
- PyReprism/languages/textile.py +0 -0
- PyReprism/languages/tsx.py +52 -0
- PyReprism/languages/twig.py +0 -0
- PyReprism/languages/typescript.py +52 -0
- PyReprism/languages/vbnet.py +51 -0
- PyReprism/languages/velocity.py +52 -0
- PyReprism/languages/verilog.py +0 -0
- PyReprism/languages/vhdl.py +0 -0
- PyReprism/languages/vim.py +52 -0
- PyReprism/languages/visual_basic.py +52 -0
- PyReprism/languages/wasam.py +0 -0
- PyReprism/languages/xeora.py +0 -0
- PyReprism/languages/xojo.py +0 -0
- PyReprism/languages/yaml.py +53 -0
- PyReprism/utils/__init__.py +0 -0
- PyReprism/utils/extension.py +149 -0
- PyReprism/utils/normalizer.py +18 -0
- pyreprism-0.0.1.dist-info/METADATA +94 -0
- pyreprism-0.0.1.dist-info/RECORD +154 -0
- pyreprism-0.0.1.dist-info/WHEEL +4 -0
- pyreprism-0.0.1.dist-info/licenses/LICENSE +21 -0
PyReprism/languages/j.py
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import re
|
|
2
|
+
from PyReprism.utils import extension
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class J:
|
|
6
|
+
def __init__():
|
|
7
|
+
pass
|
|
8
|
+
|
|
9
|
+
@staticmethod
|
|
10
|
+
def file_extension() -> str:
|
|
11
|
+
return extension.j
|
|
12
|
+
|
|
13
|
+
@staticmethod
|
|
14
|
+
def keywords() -> list:
|
|
15
|
+
keyword = ''.split('|')
|
|
16
|
+
return keyword
|
|
17
|
+
|
|
18
|
+
@staticmethod
|
|
19
|
+
def comment_regex():
|
|
20
|
+
pattern = re.compile(r'(?P<comment>NB\..*$)|(?P<noncomment>[^N][^\n]*)', re.MULTILINE)
|
|
21
|
+
return pattern
|
|
22
|
+
|
|
23
|
+
@staticmethod
|
|
24
|
+
def number_regex():
|
|
25
|
+
pattern = re.compile(r'')
|
|
26
|
+
return pattern
|
|
27
|
+
|
|
28
|
+
@staticmethod
|
|
29
|
+
def operator_regex():
|
|
30
|
+
pattern = re.compile(r'')
|
|
31
|
+
return pattern
|
|
32
|
+
|
|
33
|
+
@staticmethod
|
|
34
|
+
def keywords_regex():
|
|
35
|
+
return re.compile(r'\b(' + '|'.join(J.keywords()) + r')\b')
|
|
36
|
+
|
|
37
|
+
@staticmethod
|
|
38
|
+
def remove_comments(source_code: str, isList: bool = False) -> str:
|
|
39
|
+
result = []
|
|
40
|
+
for match in J.comment_regex().finditer(source_code):
|
|
41
|
+
if match.group('noncomment'):
|
|
42
|
+
result.append(match.group('noncomment'))
|
|
43
|
+
if isList:
|
|
44
|
+
return result
|
|
45
|
+
return ''.join(result)
|
|
46
|
+
|
|
47
|
+
@staticmethod
|
|
48
|
+
def remove_keywords(source: str):
|
|
49
|
+
return re.sub(re.compile(J.keywords_regex()), '', source)
|
|
50
|
+
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import re
|
|
2
|
+
from PyReprism.utils import extension
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class Java:
|
|
6
|
+
def __init__():
|
|
7
|
+
pass
|
|
8
|
+
|
|
9
|
+
@staticmethod
|
|
10
|
+
def file_extension() -> str:
|
|
11
|
+
return extension.java
|
|
12
|
+
|
|
13
|
+
@staticmethod
|
|
14
|
+
def keywords() -> list:
|
|
15
|
+
keyword = 'abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|const|float|native|super|while'.split('|')
|
|
16
|
+
|
|
17
|
+
return keyword
|
|
18
|
+
|
|
19
|
+
@staticmethod
|
|
20
|
+
def comment_regex():
|
|
21
|
+
pattern = re.compile(r'(?P<comment>//.*?$|/\*.*?\*/|/\*.*?$|^.*?\*/|[{}]+)|(?P<noncomment>\'(\\.|[^\\\'])*\'|"(\\.|[^\\"])*"|.[^/\'"{}]*)', re.DOTALL | re.MULTILINE)
|
|
22
|
+
return pattern
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
@staticmethod
|
|
26
|
+
def number_regex():
|
|
27
|
+
pattern = re.compile(r'\b0b[01]+\b|\b0x[\da-f]*\.?[\da-fp-]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?[df]?')
|
|
28
|
+
return pattern
|
|
29
|
+
|
|
30
|
+
@staticmethod
|
|
31
|
+
def operator_regex():
|
|
32
|
+
pattern = re.compile(r'(^|[^.])(?:\+[+=]?|-[-=]?|!=?|<<?=?|>>?>?=?|==?|&[&=]?|\|[|=]?|\*=?|\/=?|%=?|\^=?|[?:~])')
|
|
33
|
+
return pattern
|
|
34
|
+
|
|
35
|
+
@staticmethod
|
|
36
|
+
def keywords_regex():
|
|
37
|
+
return re.compile(r'\b(' + '|'.join(Java.keywords()) + r')\b')
|
|
38
|
+
|
|
39
|
+
@staticmethod
|
|
40
|
+
def remove_comments(source_code: str, isList: bool = False) -> str:
|
|
41
|
+
result = []
|
|
42
|
+
for match in Java.comment_regex().finditer(source_code):
|
|
43
|
+
if match.group('noncomment'):
|
|
44
|
+
result.append(match.group('noncomment'))
|
|
45
|
+
if isList:
|
|
46
|
+
return result
|
|
47
|
+
return ''.join(result)
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
@staticmethod
|
|
51
|
+
def remove_keywords(source: str):
|
|
52
|
+
return re.sub(re.compile(Java.keywords_regex()), '', source)
|
|
53
|
+
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import re
|
|
2
|
+
from PyReprism.utils import extension
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class JavaScript:
|
|
6
|
+
def __init__():
|
|
7
|
+
pass
|
|
8
|
+
|
|
9
|
+
@staticmethod
|
|
10
|
+
def file_extension() -> str:
|
|
11
|
+
return extension.javascript
|
|
12
|
+
|
|
13
|
+
@staticmethod
|
|
14
|
+
def keywords() -> list:
|
|
15
|
+
keyword = 'as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield'.split('|')
|
|
16
|
+
|
|
17
|
+
return keyword
|
|
18
|
+
|
|
19
|
+
@staticmethod
|
|
20
|
+
def comment_regex():
|
|
21
|
+
pattern = re.compile(r'(?P<comment>//.*?$|/\*.*?\*/|/\*.*?$|^.*?\*/|[{}]+)|(?P<noncomment>\'(\\.|[^\\\'])*\'|"(\\.|[^\\"])*"|.[^/\'"{}]*)', re.DOTALL | re.MULTILINE)
|
|
22
|
+
return pattern
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
@staticmethod
|
|
26
|
+
def number_regex():
|
|
27
|
+
pattern = re.compile(r'\b(?:0[xX][\dA-Fa-f]+|0[bB][01]+|0[oO][0-7]+|NaN|Infinity)\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][+-]?\d+)?')
|
|
28
|
+
return pattern
|
|
29
|
+
|
|
30
|
+
@staticmethod
|
|
31
|
+
def operator_regex():
|
|
32
|
+
pattern = re.compile(r'-[-=]?|\+[+=]?|!=?=?|<<?=?|>>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}')
|
|
33
|
+
return pattern
|
|
34
|
+
|
|
35
|
+
@staticmethod
|
|
36
|
+
def keywords_regex():
|
|
37
|
+
return re.compile(r'\b(' + '|'.join(JavaScript.keywords()) + r')\b')
|
|
38
|
+
|
|
39
|
+
@staticmethod
|
|
40
|
+
def remove_comments(source_code: str, isList: bool = False) -> str:
|
|
41
|
+
result = []
|
|
42
|
+
for match in JavaScript.comment_regex().finditer(source_code):
|
|
43
|
+
if match.group('noncomment'):
|
|
44
|
+
result.append(match.group('noncomment'))
|
|
45
|
+
if isList:
|
|
46
|
+
return result
|
|
47
|
+
return ''.join(result)
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
@staticmethod
|
|
51
|
+
def remove_keywords(source: str):
|
|
52
|
+
return re.sub(re.compile(JavaScript.keywords_regex()), '', source)
|
|
53
|
+
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import re
|
|
2
|
+
from PyReprism.utils import extension
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class Jolie:
|
|
6
|
+
def __init__():
|
|
7
|
+
pass
|
|
8
|
+
|
|
9
|
+
@staticmethod
|
|
10
|
+
def file_extension() -> str:
|
|
11
|
+
return extension.jolie
|
|
12
|
+
|
|
13
|
+
@staticmethod
|
|
14
|
+
def keywords() -> list:
|
|
15
|
+
keyword = ''.split('|')
|
|
16
|
+
return keyword
|
|
17
|
+
|
|
18
|
+
@staticmethod
|
|
19
|
+
def comment_regex():
|
|
20
|
+
pattern = re.compile(r'(?P<comment>//.*?$|/\*[\s\S]*?\*/|/\*.*?$|^.*?\*/)|(?P<noncomment>[^/\n]*[^\n]*)', re.DOTALL | re.MULTILINE)
|
|
21
|
+
return pattern
|
|
22
|
+
|
|
23
|
+
@staticmethod
|
|
24
|
+
def number_regex():
|
|
25
|
+
pattern = re.compile(r'')
|
|
26
|
+
return pattern
|
|
27
|
+
|
|
28
|
+
@staticmethod
|
|
29
|
+
def operator_regex():
|
|
30
|
+
pattern = re.compile(r'')
|
|
31
|
+
return pattern
|
|
32
|
+
|
|
33
|
+
@staticmethod
|
|
34
|
+
def keywords_regex():
|
|
35
|
+
return re.compile(r'\b(' + '|'.join(Jolie.keywords()) + r')\b')
|
|
36
|
+
|
|
37
|
+
@staticmethod
|
|
38
|
+
def remove_comments(source_code: str, isList: bool = False) -> str:
|
|
39
|
+
result = []
|
|
40
|
+
for match in Jolie.comment_regex().finditer(source_code):
|
|
41
|
+
if match.group('noncomment'):
|
|
42
|
+
result.append(match.group('noncomment'))
|
|
43
|
+
if isList:
|
|
44
|
+
return result
|
|
45
|
+
return ''.join(result)
|
|
46
|
+
|
|
47
|
+
@staticmethod
|
|
48
|
+
def remove_keywords(source: str):
|
|
49
|
+
return re.sub(re.compile(Jolie.keywords_regex()), '', source)
|
|
50
|
+
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import re
|
|
2
|
+
from PyReprism.utils import extension
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class Json:
|
|
6
|
+
def __init__():
|
|
7
|
+
pass
|
|
8
|
+
|
|
9
|
+
@staticmethod
|
|
10
|
+
def file_extension() -> str:
|
|
11
|
+
return extension.json
|
|
12
|
+
|
|
13
|
+
@staticmethod
|
|
14
|
+
def keywords() -> list:
|
|
15
|
+
keyword = ''.split('|')
|
|
16
|
+
return keyword
|
|
17
|
+
|
|
18
|
+
@staticmethod
|
|
19
|
+
def comment_regex():
|
|
20
|
+
pattern = re.compile(r'(?P<comment>//.*?$|/\*[\s\S]*?\*/|/\*.*?$|^.*?\*/)|(?P<noncomment>[^/\n]*[^\n]*)', re.DOTALL | re.MULTILINE)
|
|
21
|
+
return pattern
|
|
22
|
+
|
|
23
|
+
@staticmethod
|
|
24
|
+
def number_regex():
|
|
25
|
+
pattern = re.compile(r'')
|
|
26
|
+
return pattern
|
|
27
|
+
|
|
28
|
+
@staticmethod
|
|
29
|
+
def operator_regex():
|
|
30
|
+
pattern = re.compile(r'')
|
|
31
|
+
return pattern
|
|
32
|
+
|
|
33
|
+
@staticmethod
|
|
34
|
+
def keywords_regex():
|
|
35
|
+
return re.compile(r'\b(' + '|'.join(Json.keywords()) + r')\b')
|
|
36
|
+
|
|
37
|
+
@staticmethod
|
|
38
|
+
def remove_comments(source_code: str, isList: bool = False) -> str:
|
|
39
|
+
result = []
|
|
40
|
+
for match in Json.comment_regex().finditer(source_code):
|
|
41
|
+
if match.group('noncomment'):
|
|
42
|
+
result.append(match.group('noncomment'))
|
|
43
|
+
if isList:
|
|
44
|
+
return result
|
|
45
|
+
return ''.join(result)
|
|
46
|
+
|
|
47
|
+
@staticmethod
|
|
48
|
+
def remove_keywords(source: str):
|
|
49
|
+
return re.sub(re.compile(Json.keywords_regex()), '', source)
|
|
50
|
+
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import re
|
|
2
|
+
from PyReprism.utils import extension
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class Jsx:
|
|
6
|
+
def __init__():
|
|
7
|
+
pass
|
|
8
|
+
|
|
9
|
+
@staticmethod
|
|
10
|
+
def file_extension() -> str:
|
|
11
|
+
return extension.jsx
|
|
12
|
+
|
|
13
|
+
@staticmethod
|
|
14
|
+
def keywords() -> list:
|
|
15
|
+
keyword = 'as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield'.split('|')
|
|
16
|
+
|
|
17
|
+
return keyword
|
|
18
|
+
|
|
19
|
+
@staticmethod
|
|
20
|
+
def comment_regex():
|
|
21
|
+
pattern = re.compile(r'(?P<comment>//.*?$|/\*[\s\S]*?\*/|\{/\*[\s\S]*?\*/\}|/\*.*?$|^.*?\*/|/\*\*[\s\S]*?\*/)|(?P<noncomment>\'(\\.|[^\\\'])*\'|"(\\.|[^\\"])*"|.[^/\'"]*)', re.DOTALL | re.MULTILINE)
|
|
22
|
+
return pattern
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
@staticmethod
|
|
26
|
+
def number_regex():
|
|
27
|
+
pattern = re.compile(r'\b(?:0[xX][\dA-Fa-f]+|0[bB][01]+|0[oO][0-7]+|NaN|Infinity)\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][+-]?\d+)?')
|
|
28
|
+
return pattern
|
|
29
|
+
|
|
30
|
+
@staticmethod
|
|
31
|
+
def operator_regex():
|
|
32
|
+
pattern = re.compile(r'-[-=]?|\+[+=]?|!=?=?|<<?=?|>>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}')
|
|
33
|
+
return pattern
|
|
34
|
+
|
|
35
|
+
@staticmethod
|
|
36
|
+
def keywords_regex():
|
|
37
|
+
return re.compile(r'\b(' + '|'.join(Jsx.keywords()) + r')\b')
|
|
38
|
+
|
|
39
|
+
@staticmethod
|
|
40
|
+
def remove_comments(source_code: str, isList: bool = False) -> str:
|
|
41
|
+
result = []
|
|
42
|
+
for match in Jsx.comment_regex().finditer(source_code):
|
|
43
|
+
if match.group('noncomment'):
|
|
44
|
+
result.append(match.group('noncomment'))
|
|
45
|
+
if isList:
|
|
46
|
+
return result
|
|
47
|
+
return ''.join(result)
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
@staticmethod
|
|
51
|
+
def remove_keywords(source: str):
|
|
52
|
+
return re.sub(re.compile(Jsx.keywords_regex()), '', source)
|
|
53
|
+
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import re
|
|
2
|
+
from PyReprism.utils import extension
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class Julia:
|
|
6
|
+
def __init__():
|
|
7
|
+
pass
|
|
8
|
+
|
|
9
|
+
@staticmethod
|
|
10
|
+
def file_extension() -> str:
|
|
11
|
+
return extension.julia
|
|
12
|
+
|
|
13
|
+
@staticmethod
|
|
14
|
+
def keywords() -> list:
|
|
15
|
+
keyword = 'abstract|baremodule|begin|bitstype|break|catch|ccall|const|continue|do|else|elseif|end|export|finally|for|function|global|if|immutable|import|importall|let|local|macro|module|print|println|quote|return|try|type|typealias|using|while|true|false'.split('|')
|
|
16
|
+
|
|
17
|
+
return keyword
|
|
18
|
+
|
|
19
|
+
@staticmethod
|
|
20
|
+
def comment_regex():
|
|
21
|
+
pattern = re.compile(r'(?P<comment>#.*?$|#=[\s\S]*?=#|#=.*?$|^.*?=#)|(?P<noncomment>\'(\\.|[^\\\'])*\'|"(\\.|[^\\"])*"|.[^#\'"]*)', re.DOTALL | re.MULTILINE)
|
|
22
|
+
return pattern
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
@staticmethod
|
|
26
|
+
def number_regex():
|
|
27
|
+
pattern = re.compile(r'(?:\b(?=\d)|\B(?=\.))(?:0[box])?(?:[\da-f]+\.?\d*|\.\d+)(?:[efp][+-]?\d+)?j?')
|
|
28
|
+
return pattern
|
|
29
|
+
|
|
30
|
+
@staticmethod
|
|
31
|
+
def operator_regex():
|
|
32
|
+
pattern = re.compile(r'[-+*^%÷&$\\]=?|\/[\/=]?|!=?=?|\|[=>]?|<(?:<=?|[=:])?|>(?:=|>>?=?)?|==?=?|[~≠≤≥]')
|
|
33
|
+
return pattern
|
|
34
|
+
|
|
35
|
+
@staticmethod
|
|
36
|
+
def keywords_regex():
|
|
37
|
+
return re.compile(r'\b(' + '|'.join(Julia.keywords()) + r')\b')
|
|
38
|
+
|
|
39
|
+
@staticmethod
|
|
40
|
+
def remove_comments(source_code: str, isList: bool = False) -> str:
|
|
41
|
+
result = []
|
|
42
|
+
for match in Julia.comment_regex().finditer(source_code):
|
|
43
|
+
if match.group('noncomment'):
|
|
44
|
+
result.append(match.group('noncomment'))
|
|
45
|
+
if isList:
|
|
46
|
+
return result
|
|
47
|
+
return ''.join(result)
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
@staticmethod
|
|
51
|
+
def remove_keywords(source: str):
|
|
52
|
+
return re.sub(re.compile(Julia.keywords_regex()), '', source)
|
|
53
|
+
|
|
File without changes
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import re
|
|
2
|
+
from PyReprism.utils import extension
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class Kotlin:
|
|
6
|
+
def __init__():
|
|
7
|
+
pass
|
|
8
|
+
|
|
9
|
+
@staticmethod
|
|
10
|
+
def file_extension() -> str:
|
|
11
|
+
return extension.kotlin
|
|
12
|
+
|
|
13
|
+
@staticmethod
|
|
14
|
+
def keywords() -> list:
|
|
15
|
+
keyword = 'abstract|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|else|enum|final|finally|for|fun|get|if|import|in|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|out|override|package|private|protected|public|reified|return|sealed|set|super|tailrec|this|throw|to|try|val|var|when|where|while'.split('|')
|
|
16
|
+
|
|
17
|
+
return keyword
|
|
18
|
+
|
|
19
|
+
@staticmethod
|
|
20
|
+
def comment_regex():
|
|
21
|
+
pattern = re.compile(r'(?P<comment>//.*?$|/\*.*?\*/|/\*.*?$|^.*?\*/|[{}]+)|(?P<noncomment>\'(\\.|[^\\\'])*\'|"(\\.|[^\\"])*"|.[^/\'"{}]*)', re.DOTALL | re.MULTILINE)
|
|
22
|
+
return pattern
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
@staticmethod
|
|
26
|
+
def number_regex():
|
|
27
|
+
pattern = re.compile(r'\b(?:0[bx][\da-fA-F]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?[fFL]?)\b')
|
|
28
|
+
return pattern
|
|
29
|
+
|
|
30
|
+
@staticmethod
|
|
31
|
+
def operator_regex():
|
|
32
|
+
pattern = re.compile(r'+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b')
|
|
33
|
+
return pattern
|
|
34
|
+
|
|
35
|
+
@staticmethod
|
|
36
|
+
def keywords_regex():
|
|
37
|
+
return re.compile(r'\b(' + '|'.join(Kotlin.keywords()) + r')\b')
|
|
38
|
+
|
|
39
|
+
@staticmethod
|
|
40
|
+
def remove_comments(source_code: str, isList: bool = False) -> str:
|
|
41
|
+
result = []
|
|
42
|
+
for match in Kotlin.comment_regex().finditer(source_code):
|
|
43
|
+
if match.group('noncomment'):
|
|
44
|
+
result.append(match.group('noncomment'))
|
|
45
|
+
if isList:
|
|
46
|
+
return result
|
|
47
|
+
return ''.join(result)
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
@staticmethod
|
|
51
|
+
def remove_keywords(source: str):
|
|
52
|
+
return re.sub(re.compile(Kotlin.keywords_regex()), '', source)
|
|
53
|
+
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import re
|
|
2
|
+
from PyReprism.utils import extension
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class Latex:
|
|
6
|
+
def __init__():
|
|
7
|
+
pass
|
|
8
|
+
|
|
9
|
+
@staticmethod
|
|
10
|
+
def file_extension() -> str:
|
|
11
|
+
return extension.latex
|
|
12
|
+
|
|
13
|
+
@staticmethod
|
|
14
|
+
def keywords() -> list:
|
|
15
|
+
keyword = ''.split('|')
|
|
16
|
+
return keyword
|
|
17
|
+
|
|
18
|
+
@staticmethod
|
|
19
|
+
def comment_regex():
|
|
20
|
+
pattern = re.compile(r'(?P<comment>%.*?$)|(?P<noncomment>[^%\n]*[^\n]*)', re.MULTILINE)
|
|
21
|
+
return pattern
|
|
22
|
+
|
|
23
|
+
@staticmethod
|
|
24
|
+
def number_regex():
|
|
25
|
+
pattern = re.compile(r'')
|
|
26
|
+
return pattern
|
|
27
|
+
|
|
28
|
+
@staticmethod
|
|
29
|
+
def operator_regex():
|
|
30
|
+
pattern = re.compile(r'')
|
|
31
|
+
return pattern
|
|
32
|
+
|
|
33
|
+
@staticmethod
|
|
34
|
+
def keywords_regex():
|
|
35
|
+
return re.compile(r'\b(' + '|'.join(Latex.keywords()) + r')\b')
|
|
36
|
+
|
|
37
|
+
@staticmethod
|
|
38
|
+
def remove_comments(source_code: str, isList: bool = False) -> str:
|
|
39
|
+
result = []
|
|
40
|
+
for match in Latex.comment_regex().finditer(source_code):
|
|
41
|
+
if match.group('noncomment'):
|
|
42
|
+
result.append(match.group('noncomment'))
|
|
43
|
+
if isList:
|
|
44
|
+
return result
|
|
45
|
+
return ''.join(result)
|
|
46
|
+
|
|
47
|
+
@staticmethod
|
|
48
|
+
def remove_keywords(source: str):
|
|
49
|
+
return re.sub(re.compile(Latex.keywords_regex()), '', source)
|
|
50
|
+
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import re
|
|
2
|
+
from PyReprism.utils import extension
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class Less:
|
|
6
|
+
def __init__():
|
|
7
|
+
pass
|
|
8
|
+
|
|
9
|
+
@staticmethod
|
|
10
|
+
def file_extension() -> str:
|
|
11
|
+
return extension.less
|
|
12
|
+
|
|
13
|
+
@staticmethod
|
|
14
|
+
def keywords() -> list:
|
|
15
|
+
keyword = ''.split('|')
|
|
16
|
+
return keyword
|
|
17
|
+
|
|
18
|
+
@staticmethod
|
|
19
|
+
def comment_regex():
|
|
20
|
+
pattern = re.compile(r'(?P<comment>/\*[\s\S]*?\*/|/\*.*?$|^.*?\*/)|(?P<noncomment>[^/*]*[^\n]*)',re.DOTALL | re.MULTILINE)
|
|
21
|
+
return pattern
|
|
22
|
+
|
|
23
|
+
@staticmethod
|
|
24
|
+
def number_regex():
|
|
25
|
+
pattern = re.compile(r'')
|
|
26
|
+
return pattern
|
|
27
|
+
|
|
28
|
+
@staticmethod
|
|
29
|
+
def operator_regex():
|
|
30
|
+
pattern = re.compile(r'')
|
|
31
|
+
return pattern
|
|
32
|
+
|
|
33
|
+
@staticmethod
|
|
34
|
+
def keywords_regex():
|
|
35
|
+
return re.compile(r'\b(' + '|'.join(Less.keywords()) + r')\b')
|
|
36
|
+
|
|
37
|
+
@staticmethod
|
|
38
|
+
def remove_comments(source_code: str, isList: bool = False) -> str:
|
|
39
|
+
result = []
|
|
40
|
+
for match in Less.comment_regex().finditer(source_code):
|
|
41
|
+
if match.group('noncomment'):
|
|
42
|
+
result.append(match.group('noncomment'))
|
|
43
|
+
if isList:
|
|
44
|
+
return result
|
|
45
|
+
return ''.join(result)
|
|
46
|
+
|
|
47
|
+
@staticmethod
|
|
48
|
+
def remove_keywords(source: str):
|
|
49
|
+
return re.sub(re.compile(Less.keywords_regex()), '', source)
|
|
50
|
+
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import re
|
|
2
|
+
from PyReprism.utils import extension
|
|
3
|
+
|
|
4
|
+
class Liquid:
|
|
5
|
+
def __init__():
|
|
6
|
+
pass
|
|
7
|
+
|
|
8
|
+
@staticmethod
|
|
9
|
+
def file_extension() -> str:
|
|
10
|
+
return extension.liquid
|
|
11
|
+
|
|
12
|
+
@staticmethod
|
|
13
|
+
def keywords() -> list:
|
|
14
|
+
keyword = ''.split('|')
|
|
15
|
+
return keyword
|
|
16
|
+
|
|
17
|
+
@staticmethod
|
|
18
|
+
def comment_regex():
|
|
19
|
+
pattern = re.compile(r'(?P<comment>\{% comment %\}[\s\S]*?\{% endcomment %\}|{% #.*? %})|(?P<noncomment>[^{%]*)', re.MULTILINE)
|
|
20
|
+
return pattern
|
|
21
|
+
|
|
22
|
+
@staticmethod
|
|
23
|
+
def number_regex():
|
|
24
|
+
pattern = re.compile(r'')
|
|
25
|
+
return pattern
|
|
26
|
+
|
|
27
|
+
@staticmethod
|
|
28
|
+
def operator_regex():
|
|
29
|
+
pattern = re.compile(r'')
|
|
30
|
+
return pattern
|
|
31
|
+
|
|
32
|
+
@staticmethod
|
|
33
|
+
def keywords_regex():
|
|
34
|
+
return re.compile(r'\b(' + '|'.join(Liquid.keywords()) + r')\b')
|
|
35
|
+
|
|
36
|
+
@staticmethod
|
|
37
|
+
def remove_comments(source_code: str, isList: bool = False) -> str:
|
|
38
|
+
result = []
|
|
39
|
+
for match in Liquid.comment_regex().finditer(source_code):
|
|
40
|
+
if match.group('noncomment'):
|
|
41
|
+
result.append(match.group('noncomment'))
|
|
42
|
+
if isList:
|
|
43
|
+
return result
|
|
44
|
+
return ''.join(result)
|
|
45
|
+
|
|
46
|
+
@staticmethod
|
|
47
|
+
def remove_keywords(source: str):
|
|
48
|
+
return re.sub(re.compile(Liquid.keywords_regex()), '', source)
|
|
49
|
+
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import re
|
|
2
|
+
from PyReprism.utils import extension
|
|
3
|
+
|
|
4
|
+
class LiveScript:
|
|
5
|
+
def __init__():
|
|
6
|
+
pass
|
|
7
|
+
|
|
8
|
+
@staticmethod
|
|
9
|
+
def file_extension() -> str:
|
|
10
|
+
return extension.livescript
|
|
11
|
+
|
|
12
|
+
@staticmethod
|
|
13
|
+
def keywords() -> list:
|
|
14
|
+
keyword = ''.split('|')
|
|
15
|
+
return keyword
|
|
16
|
+
|
|
17
|
+
@staticmethod
|
|
18
|
+
def comment_regex():
|
|
19
|
+
pattern = re.compile(r'(?P<comment>#.*?$|/\*[\s\S]*?\*/|/\*.*?$|^.*?\*/)|(?P<noncomment>[^#/*]*[^\n]*)', re.MULTILINE | re.DOTALL)
|
|
20
|
+
return pattern
|
|
21
|
+
|
|
22
|
+
@staticmethod
|
|
23
|
+
def number_regex():
|
|
24
|
+
pattern = re.compile(r'')
|
|
25
|
+
return pattern
|
|
26
|
+
|
|
27
|
+
@staticmethod
|
|
28
|
+
def operator_regex():
|
|
29
|
+
pattern = re.compile(r'')
|
|
30
|
+
return pattern
|
|
31
|
+
|
|
32
|
+
@staticmethod
|
|
33
|
+
def keywords_regex():
|
|
34
|
+
return re.compile(r'\b(' + '|'.join(LiveScript.keywords()) + r')\b')
|
|
35
|
+
|
|
36
|
+
@staticmethod
|
|
37
|
+
def remove_comments(source_code: str, isList: bool = False) -> str:
|
|
38
|
+
result = []
|
|
39
|
+
for match in LiveScript.comment_regex().finditer(source_code):
|
|
40
|
+
if match.group('noncomment'):
|
|
41
|
+
result.append(match.group('noncomment'))
|
|
42
|
+
if isList:
|
|
43
|
+
return result
|
|
44
|
+
return ''.join(result)
|
|
45
|
+
|
|
46
|
+
@staticmethod
|
|
47
|
+
def remove_keywords(source: str):
|
|
48
|
+
return re.sub(re.compile(LiveScript.keywords_regex()), '', source)
|
|
49
|
+
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import re
|
|
2
|
+
from PyReprism.utils import extension
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class MakeFile:
|
|
6
|
+
def __init__():
|
|
7
|
+
pass
|
|
8
|
+
|
|
9
|
+
@staticmethod
|
|
10
|
+
def file_extension() -> str:
|
|
11
|
+
return extension.makefile
|
|
12
|
+
|
|
13
|
+
@staticmethod
|
|
14
|
+
def keywords() -> list:
|
|
15
|
+
keyword = ''.split('|')
|
|
16
|
+
return keyword
|
|
17
|
+
|
|
18
|
+
@staticmethod
|
|
19
|
+
def comment_regex():
|
|
20
|
+
pattern = re.compile(r'(?P<comment>#.*?$)|(?P<noncomment>[^#\n]*[^\n]*)', re.MULTILINE)
|
|
21
|
+
return pattern
|
|
22
|
+
|
|
23
|
+
@staticmethod
|
|
24
|
+
def number_regex():
|
|
25
|
+
pattern = re.compile(r'')
|
|
26
|
+
return pattern
|
|
27
|
+
|
|
28
|
+
@staticmethod
|
|
29
|
+
def operator_regex():
|
|
30
|
+
pattern = re.compile(r'')
|
|
31
|
+
return pattern
|
|
32
|
+
|
|
33
|
+
@staticmethod
|
|
34
|
+
def keywords_regex():
|
|
35
|
+
return re.compile(r'\b(' + '|'.join(MakeFile.keywords()) + r')\b')
|
|
36
|
+
|
|
37
|
+
@staticmethod
|
|
38
|
+
def remove_comments(source_code: str, isList: bool = False) -> str:
|
|
39
|
+
result = []
|
|
40
|
+
for match in MakeFile.comment_regex().finditer(source_code):
|
|
41
|
+
if match.group('noncomment'):
|
|
42
|
+
result.append(match.group('noncomment'))
|
|
43
|
+
if isList:
|
|
44
|
+
return result
|
|
45
|
+
return ''.join(result)
|
|
46
|
+
|
|
47
|
+
@staticmethod
|
|
48
|
+
def remove_keywords(source: str):
|
|
49
|
+
return re.sub(re.compile(MakeFile.keywords_regex()), '', source)
|
|
50
|
+
|