/
lang_map.py
39 lines (28 loc) · 1.17 KB
/
lang_map.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
from collections import namedtuple
Lang = namedtuple('Lang', 'dmoj_langs file_ext moss_lang')
'''
MOSS supported languages list:
@languages = ("c", "cc", "java", "ml", "pascal", "ada", "lisp", "scheme", "haskell", "fortran", "ascii", "vhdl", "perl", "matlab", "python", "mips", "prolog", "spice", "vb", "csharp", "modula2", "a8086", "javascript", "plsql", "verilog");
DMOJ languages list:
https://dmoj.ca/api/problem/info/helloworld
This just covers common languages used on DM::OJ
'''
__langs = (
Lang(('C', 'C11', 'Clang'), 'c', 'c'),
Lang(('C++', 'C++03', 'C++11', 'C++14', 'C++17', 'Clang++'), 'cpp', 'cc'),
Lang(('PY2', 'PY3', 'PYPY', 'PYPY3'), 'py', 'python'),
Lang(('JAVA8', 'JAVA9', 'JAVA10', 'JAVA11'), 'java', 'java'),
Lang(('HASK',), 'hs', 'haskell'),
Lang(('PAS',), 'pas', 'pascal'),
Lang(('V8JS',), 'js', 'javascript')
)
LANG_TO_EXT = {}
LANG_TO_MOSS = {}
for dmoj_langs, file_ext, moss_lang in __langs:
for dmoj_lang in dmoj_langs:
LANG_TO_EXT[dmoj_lang] = file_ext
LANG_TO_MOSS[dmoj_lang] = moss_lang
def get_ext(dmoj_lang):
return LANG_TO_EXT.get(dmoj_lang)
def get_moss_lang(dmoj_lang):
return LANG_TO_MOSS[dmoj_lang]