Skip to content

handv/ace-python-syntax-validator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 

Repository files navigation

python语法错误识别的ace编辑器

起源

代码fork from PythonSyntaxValidator,但该项目里的ace-editor代码是2014年的,太过于久远。

因此在此基础上,基于ace-builds v1.4.5,版本号7489e42进行改造。

python语法错误识别的原理

在worker-python中,构建了js版本的python编译器、解析器等,当ace里的代码被编译后,如果被catch捕获,则执行ace的setAnnotations,展示ui上的错误提示

var prsr = require('../mode/python/Parser');
var bldr = require('../mode/python/builder');
var cmplr = require('../mode/python/compiler');
var symtbl = require('../mode/python/symtable');
try  {
  var fileName = '<stdin>';

  var node = prsr.parse(fileName, source);

  var module = bldr.astFromParse(node, fileName);

  var symbolTable = symtbl.symbolTable(module, fileName);

  var compiler = new cmplr.Compiler(fileName, symbolTable, 0, source);

  var compiled = { 'funcname': compiler.cmod(module), 'code': compiler.result.join('') };
} catch (e) {
  try  {
    annotations.push({
      row: e.lineNumber - 1,
      column: e.columnNumber,
      text: e.message,
      type: ERROR
    });
  } catch (slippery) {
    console.log(slippery);
  }
}

About

可以识别python语法错误的ace编辑器

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors