@@ -51,4 +51,4 @@ target | |||
# Ctags | |||
*/tags | |||
log | |||
logs |
@@ -27,7 +27,7 @@ class Codelet(object): | |||
""" | |||
def __init__(self, name, code, filename, language, authors, code_url, | |||
date_created, date_modified, rank, symbols=None, origin=None): | |||
date_created, date_modified, rank, symbols=None, origin=None): | |||
""" | |||
Create a Codelet instance. | |||
@@ -1,4 +1,283 @@ | |||
{ | |||
"_comment" : "A list of programming languages supported by `bitshift`.", | |||
"languages" : ["Debian Sourcelist", "Delphi", "JavaScript+Mako", "Brainfuck", "Ceylon", "JavaScript+Django/Jinja", "HTML+Evoque", "NumPy", "Modula-2", "LiveScript", "Nimrod", "Bash", "HTML+Django/Jinja", "CSS+PHP", "XML+Lasso", "VimL", "CSS+Genshi Text", "Fancy", "Coldfusion HTML", "cfstatement", "Scalate Server Page", "Smarty", "XML+Evoque", "haXe", "PowerShell", "Tea", "HTML+Cheetah", "Mason", "Django/Jinja", "JAGS", "ApacheConf", "DTD", "Lighttpd configuration file", "Java", "JavaScript+Genshi Text", "Scheme", "Nemerle", "RHTML", "Ragel in Java Host", "Darcs Patch", "Puppet", "Octave", "CoffeeScript", "Ragel in D Host", "Scilab", "Monkey", "HTML+Myghty", "CSS", "JavaScript+Smarty", "Io", "COBOLFree", "Asymptote", "vhdl", "Python 3", "CSS+Ruby", "Fortran", "d-objdump", "MySQL", "REBOL", "C++", "ERB", "CBM BASIC V2", "Befunge", "Julia", "MoonScript", "Ruby", "XML+Smarty", "Dylan", "Groovy", "MoinMoin/Trac Wiki markup", "autohotkey", "C", "HTML", "Felix", "CMake", "NSIS", "SourcePawn", "Mako", "VGL", "Velocity", "Koka", "CUDA", "Gnuplot", "IRC logs", "Prolog", "Python", "CSS+Django/Jinja", "verilog", "Smalltalk", "JavaScript+Myghty", "YAML", "Julia console", "ANTLR With ActionScript Target", "XML+Mako", "XSLT", "UrbiScript", "Scaml", "S", "DylanLID", "MAQL", "sqlite3con", "Boo", "OCaml", "eC", "ActionScript", "VB.net", "SquidConf", "XQuery", "D", "Fantom", "Gettext Catalog", "Logos", "Lasso", "SCSS", "BBCode", "Haml", "FoxPro", "Python 3.0 Traceback", "MuPAD", "XML+Ruby", "Dart", "IDL", "dg", "Evoque", "Jade", "c-objdump", "Kconfig", "Java Server Page", "reg", "ABAP", "XML+Velocity", "JavaScript+Cheetah", "HTML+Mako", "Ragel in Ruby Host", "RobotFramework", "Protocol Buffer", "CFEngine3", "Ragel", "GLSL", "COBOL", "TypeScript", "Ada", "PostgreSQL SQL dialect", "Xtend", "Logtalk", "objdump", "CSS+Mako", "ca65", "Objective-C++", "Gherkin", "HTML+PHP", "Makefile", "PostScript", "Hxml", "Kotlin", "PL/pgSQL", "Vala", "Haskell", "Bro", "Lua", "POVRay", "Sass", "ANTLR With Java Target", "Tcl", "ANTLR With ObjectiveC Target", "JavaScript+Ruby", "Racket", "AspectJ", "Base Makefile", "ANTLR With Python Target", "cpp-objdump", "Genshi Text", "Ioke", "PyPy Log", "Croc", "Objective-J", "GAS", "Batchfile", "Snobol", "XML", "ANTLR", "Opa", "XML+Cheetah", "Go", "Diff", "MiniD", "Cython", "Ragel in C Host", "Erlang", "Debian Control file", "aspx-vb", "BUGS", "Ragel in CPP Host", "aspx-cs", "Properties", "Groff", "Clojure", "Modelica", "QML", "JavaScript+Lasso", "ANTLR With Perl Target", "Genshi", "BlitzMax", "Treetop", "Matlab", "Myghty", "HTML+Genshi", "Duel", "Perl", "FSharp", "reStructuredText", "NewLisp", "Scala", "CSS+Lasso", "XML+PHP", "Stan", "INI", "MOOCode", "Shell Session", "RPMSpec", "Newspeak", "Bash Session", "Coq", "Raw token data", "Tcsh", "HTML+Lasso", "C#", "Gosu Template", "RConsole", "MXML", "TeX", "CSS+Smarty", "Text only", "ANTLR With C# Target", "OpenEdge ABL", "Cheetah", "Smali", "CSS+Myghty", "Rd", "LLVM", "Standard ML", "Elixir", "Nginx configuration file", "GoodData-CL", "AppleScript", "HTML+Smarty", "Objective-C", "JavaScript", "Rust", "Common Lisp", "Embedded Ragel", "ActionScript 3", "systemverilog", "Literate Haskell", "Python Traceback", "PHP", "ANTLR With CPP Target", "Gosu", "Hybris", "JavaScript+PHP", "Factor", "HTML+Velocity", "Mscgen", "Ooc", "SQL", "HTTP", "ECL", "Redcode", "Ragel in Objective C Host", "XML+Django/Jinja", "Awk", "JSON", "NASM", "ANTLR With Ruby Target", "XML+Myghty", "AutoIt", "Mako", "CSS+Mako", "HTML+Mako", "XML+Mako", "JavaScript+Mako"] | |||
"languages" : [ | |||
"Debian Sourcelist", | |||
"Delphi", | |||
"JavaScript+Mako", | |||
"Brainfuck", | |||
"Ceylon", | |||
"JavaScript+Django/Jinja", | |||
"HTML+Evoque", | |||
"NumPy", | |||
"Modula-2", | |||
"LiveScript", | |||
"Nimrod", | |||
"Bash", | |||
"HTML+Django/Jinja", | |||
"CSS+PHP", | |||
"XML+Lasso", | |||
"VimL", | |||
"CSS+Genshi Text", | |||
"Fancy", | |||
"Coldfusion HTML", | |||
"cfstatement", | |||
"Scalate Server Page", | |||
"Smarty", | |||
"XML+Evoque", | |||
"haXe", | |||
"PowerShell", | |||
"Tea", | |||
"HTML+Cheetah", | |||
"Mason", | |||
"Django/Jinja", | |||
"JAGS", | |||
"ApacheConf", | |||
"DTD", | |||
"Lighttpd configuration file", | |||
"Java", | |||
"JavaScript+Genshi Text", | |||
"Scheme", | |||
"Nemerle", | |||
"RHTML", | |||
"Ragel in Java Host", | |||
"Darcs Patch", | |||
"Puppet", | |||
"Octave", | |||
"CoffeeScript", | |||
"Ragel in D Host", | |||
"Scilab", | |||
"Monkey", | |||
"HTML+Myghty", | |||
"CSS", | |||
"JavaScript+Smarty", | |||
"Io", | |||
"COBOLFree", | |||
"Asymptote", | |||
"vhdl", | |||
"CSS+Ruby", | |||
"Fortran", | |||
"d-objdump", | |||
"MySQL", | |||
"REBOL", | |||
"C++", | |||
"ERB", | |||
"CBM BASIC V2", | |||
"Befunge", | |||
"Julia", | |||
"MoonScript", | |||
"Ruby", | |||
"XML+Smarty", | |||
"Dylan", | |||
"Groovy", | |||
"MoinMoin/Trac Wiki markup", | |||
"autohotkey", | |||
"C", | |||
"HTML", | |||
"Felix", | |||
"CMake", | |||
"NSIS", | |||
"SourcePawn", | |||
"Mako", | |||
"VGL", | |||
"Velocity", | |||
"Koka", | |||
"CUDA", | |||
"Gnuplot", | |||
"IRC logs", | |||
"Prolog", | |||
"Python", | |||
"CSS+Django/Jinja", | |||
"verilog", | |||
"Smalltalk", | |||
"JavaScript+Myghty", | |||
"YAML", | |||
"Julia console", | |||
"ANTLR With ActionScript Target", | |||
"XML+Mako", | |||
"XSLT", | |||
"UrbiScript", | |||
"Scaml", | |||
"S", | |||
"DylanLID", | |||
"MAQL", | |||
"sqlite3con", | |||
"Boo", | |||
"OCaml", | |||
"eC", | |||
"ActionScript", | |||
"VB.net", | |||
"SquidConf", | |||
"XQuery", | |||
"D", | |||
"Fantom", | |||
"Gettext Catalog", | |||
"Logos", | |||
"Lasso", | |||
"SCSS", | |||
"BBCode", | |||
"Haml", | |||
"FoxPro", | |||
"MuPAD", | |||
"XML+Ruby", | |||
"Dart", | |||
"IDL", | |||
"dg", | |||
"Evoque", | |||
"Jade", | |||
"c-objdump", | |||
"Kconfig", | |||
"Java Server Page", | |||
"reg", | |||
"ABAP", | |||
"XML+Velocity", | |||
"JavaScript+Cheetah", | |||
"HTML+Mako", | |||
"Ragel in Ruby Host", | |||
"RobotFramework", | |||
"Protocol Buffer", | |||
"CFEngine3", | |||
"Ragel", | |||
"GLSL", | |||
"COBOL", | |||
"TypeScript", | |||
"Ada", | |||
"PostgreSQL SQL dialect", | |||
"Xtend", | |||
"Logtalk", | |||
"objdump", | |||
"CSS+Mako", | |||
"ca65", | |||
"Objective-C++", | |||
"Gherkin", | |||
"HTML+PHP", | |||
"Makefile", | |||
"PostScript", | |||
"Hxml", | |||
"Kotlin", | |||
"PL/pgSQL", | |||
"Vala", | |||
"Haskell", | |||
"Bro", | |||
"Lua", | |||
"POVRay", | |||
"Sass", | |||
"ANTLR With Java Target", | |||
"Tcl", | |||
"ANTLR With ObjectiveC Target", | |||
"JavaScript+Ruby", | |||
"Racket", | |||
"AspectJ", | |||
"Base Makefile", | |||
"ANTLR With Python Target", | |||
"cpp-objdump", | |||
"Genshi Text", | |||
"Ioke", | |||
"PyPy Log", | |||
"Croc", | |||
"Objective-J", | |||
"GAS", | |||
"Batchfile", | |||
"Snobol", | |||
"XML", | |||
"ANTLR", | |||
"Opa", | |||
"XML+Cheetah", | |||
"Go", | |||
"Diff", | |||
"MiniD", | |||
"Cython", | |||
"Ragel in C Host", | |||
"Erlang", | |||
"Debian Control file", | |||
"aspx-vb", | |||
"BUGS", | |||
"Ragel in CPP Host", | |||
"aspx-cs", | |||
"Properties", | |||
"Groff", | |||
"Clojure", | |||
"Modelica", | |||
"QML", | |||
"JavaScript+Lasso", | |||
"ANTLR With Perl Target", | |||
"Genshi", | |||
"BlitzMax", | |||
"Treetop", | |||
"Matlab", | |||
"Myghty", | |||
"HTML+Genshi", | |||
"Duel", | |||
"Perl", | |||
"FSharp", | |||
"reStructuredText", | |||
"NewLisp", | |||
"Scala", | |||
"CSS+Lasso", | |||
"XML+PHP", | |||
"Stan", | |||
"INI", | |||
"MOOCode", | |||
"Shell Session", | |||
"RPMSpec", | |||
"Newspeak", | |||
"Bash Session", | |||
"Coq", | |||
"Raw token data", | |||
"Tcsh", | |||
"HTML+Lasso", | |||
"C#", | |||
"Gosu Template", | |||
"RConsole", | |||
"MXML", | |||
"TeX", | |||
"CSS+Smarty", | |||
"Text only", | |||
"ANTLR With C# Target", | |||
"OpenEdge ABL", | |||
"Cheetah", | |||
"Smali", | |||
"CSS+Myghty", | |||
"Rd", | |||
"LLVM", | |||
"Standard ML", | |||
"Elixir", | |||
"Nginx configuration file", | |||
"GoodData-CL", | |||
"AppleScript", | |||
"HTML+Smarty", | |||
"Objective-C", | |||
"JavaScript", | |||
"Rust", | |||
"Common Lisp", | |||
"Embedded Ragel", | |||
"ActionScript 3", | |||
"systemverilog", | |||
"Literate Haskell", | |||
"PHP", | |||
"ANTLR With CPP Target", | |||
"Gosu", | |||
"Hybris", | |||
"JavaScript+PHP", | |||
"Factor", | |||
"HTML+Velocity", | |||
"Mscgen", | |||
"Ooc", | |||
"SQL", | |||
"HTTP", | |||
"ECL", | |||
"Redcode", | |||
"Ragel in Objective C Host", | |||
"XML+Django/Jinja", | |||
"Awk", | |||
"JSON", | |||
"NASM", | |||
"ANTLR With Ruby Target", | |||
"XML+Myghty", | |||
"AutoIt", | |||
"Mako", | |||
"CSS+Mako", | |||
"HTML+Mako", | |||
"XML+Mako", | |||
"JavaScript+Mako" | |||
] | |||
} |
@@ -1,4 +1,10 @@ | |||
import json, pygments.lexers as pgl, sys, socket, struct | |||
import json | |||
import sys | |||
import socket | |||
import struct | |||
from pygments import lexers as pgl, util | |||
from ..languages import LANGS | |||
from .python import parse_py | |||
@@ -19,13 +25,14 @@ def _lang(codelet): | |||
Modify function to incorporate tags from stackoverflow. | |||
""" | |||
if codelet.filename is not None: | |||
try: | |||
return pgl.guess_lexer_for_filename(codelet.filename, codelet.code).name | |||
except: | |||
raise UnsupportedFileError('Could not find a lexer for the codelet\'s filename') | |||
return LANGS.index(pgl.guess_lexer(codelet.code)) | |||
try: | |||
if codelet.filename: | |||
lex = pgl.guess_lexer_for_filename(codelet.filename, codelet.code) | |||
else: | |||
lex = pgl.guess_lexer(codelet.code) | |||
except util.ClassNotFound: | |||
raise UnsupportedFileError(codelet.filename) | |||
return LANGS.index(lex.name) | |||
def _recv_data(server_socket): | |||
""" | |||
@@ -39,8 +46,9 @@ def _recv_data(server_socket): | |||
""" | |||
recv_size = 8192 | |||
total_data = []; size_data = cur_data = '' | |||
total_size = 0; size = sys.maxint | |||
total_data = [] | |||
size_data = cur_data = '' | |||
total_size, size = 0, sys.maxint | |||
while total_size < size: | |||
cur_data = server_socket.recv(recv_size) | |||
@@ -61,8 +69,7 @@ def _recv_data(server_socket): | |||
total_size = sum([len(s) for s in total_data]) | |||
server_socket.close() | |||
return ''.join(total_data); | |||
return ''.join(total_data) | |||
def parse(codelet): | |||
""" | |||
@@ -76,7 +83,8 @@ def parse(codelet): | |||
:type code: Codelet | |||
""" | |||
lang = _lang(codelet); source = codelet.code | |||
lang = _lang(codelet) | |||
source = codelet.code | |||
codelet.language = lang | |||
server_socket_number = 5000 + lang | |||
@@ -86,8 +94,7 @@ def parse(codelet): | |||
else: | |||
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) | |||
server_socket.connect(("localhost", server_socket_number)) | |||
server_socket.send("%d\n%s" % (len(source), source)); | |||
server_socket.send("%d\n%s" % (len(source), source)) | |||
symbols = json.loads(_recv_data(server_socket)) | |||
codelet.symbols = symbols | |||
@@ -195,7 +195,7 @@ class Symbol(_Node): | |||
CLASS = 1 | |||
VARIABLE = 2 | |||
TYPES = {FUNCTION: "FUNCTION", CLASS: "CLASS", VARIABLE: "VARIABLE"} | |||
TYPES_INV = ["functions", "classes", "variables"] | |||
TYPES_INV = ["functions", "classes", "vars"] | |||
def __init__(self, type_, name): | |||
""" | |||