语法分析

注意: 河图的类型系统相关工具并不完整,并不建议在生产中使用 Analyzer 或者打开 HetuConfig 上的 doStaticAnalysis 和 computeConstantExpression 开关。

河图提供了一个单独的工具类 Analyzer,可以在不运行代码的前提下分析河图脚本的错误。下面是一个简单的例子:

import 'package:hetu_script/analyzer.dart';

void main() {
  final hetu = HTAnalyzer();
  hetu.init();
  final result = hetu.eval(r'''
    var i = 'Hello, world!'
  ''');
  if (result != null) {
    if (result.errors.isNotEmpty) {
      print('Analyzer found ${result.errors.length} problems:');
      for (final err in result.errors) {
        print(err);
      }
    } else {
      print('Analyzer found 0 problem.');
    }
  } else {
    print('Unkown error occurred during analysis.');
  }
}

Last Updated:
Contributors: 邵燃