Commit Graph

16 Commits

Author SHA1 Message Date
John Messerly d8863611dc adds command line help to dartdevc
BUG=
R=sigmund@google.com

Review URL: https://chromereviews.googleplex.com/125447013
2014-12-12 14:15:01 -08:00
Sigmund Cherem 2abc79389f Random cleanups
BUG=
R=jmesserly@google.com

Review URL: https://chromereviews.googleplex.com/130857013
2014-12-11 18:17:06 -08:00
Sigmund Cherem 1c6787f47c Run the latest formatter on all files.
R=jmesserly@google.com

Review URL: https://chromereviews.googleplex.com/130817013
2014-12-11 16:33:01 -08:00
Sigmund Cherem 02a4650a24 Refactor: move code around a bit
- bin/
    devc.dart

- lib/
    devc.dart

    src/
       info.dart # static info we compute, used by checker & backends
       checker/  # implementation details for the checker
          checker.dart  # checking algorithm
          rules.dart    # type checking rules
          resolver.dart # same as today, type resolution via analyzer
       emitter/
          ...
- test/
     checker/    # unit tests for the checker internals
     codegen/    # left as is - maybe should rename to emitter?
     samples/    # stand alone samples that we run in the end_to_end tests.
     ...

R=vsm@google.com

Review URL: https://chromereviews.googleplex.com/128957013
2014-12-11 15:13:54 -08:00
Leaf Petersen eef8c94795 Skeleton for new checker and dart backend
This adds a skeleton new type checker which just reuses the existing checker for now, but will be filled in with the new type rules.

It also adds a dart backend code generator which currently just spits out the original dart code unchanged (except for (lack of) formatting) into the output directory.  By default it uses the dart_style formatter to format the output.  This sometimes hits issues, so there is an option to turn this off.

There are flags to control the various options added.

BUG=
R=jmesserly@google.com, vsm@google.com

Review URL: https://chromereviews.googleplex.com/128857013
2014-12-11 13:01:01 -08:00
John Messerly 3124c7ec89 add the ability to easily test codegen by diffing against expected output
this makes changes easy to spot

some of this code was taken from old polymer.dart test scripts :)

R=sigmund@google.com

Review URL: https://chromereviews.googleplex.com/121567013
2014-12-09 16:52:05 -08:00
John Messerly 5d4f190e63 autoformat with dartfmt. This CL is entire automated.
I filed a few issues:
https://github.com/dart-lang/dart_style/issues/61
https://github.com/dart-lang/dart_style/issues/62

...but they aren't blocking, so I left our long comments (62) and one slightly odd formatting (61) as is.

R=sigmund@google.com, vsm@google.com

Review URL: https://chromereviews.googleplex.com/120127014
2014-12-08 19:58:35 -08:00
Vijay Menon e6b1853c40 Flesh out more codegen
R=jmesserly@google.com

Review URL: https://chromereviews.googleplex.com/126787013
2014-12-02 09:02:17 -08:00
Sigmund Cherem d2a729cd68 Run resolver on every library, as we walk through them
R=vsm@google.com

Review URL: https://chromereviews.googleplex.com/115197015
2014-11-25 12:54:37 -08:00
Sigmund Cherem 971e551b6d Use analyzer as a library, enable mock sdks, refactor to start testing
R=vsm@google.com

Review URL: https://chromereviews.googleplex.com/118577013
2014-11-21 14:24:06 -08:00
Sigmund Cherem 4c67c961ff All minor nits: split some files up, fix comments in walker to remove references
to spec, make them more darty, run formatter on the rest of the files

R=vsm@google.com

Review URL: https://chromereviews.googleplex.com/117397013
2014-11-20 15:36:20 -08:00
Sigmund Cherem 560aa1f632 Fix span location to skip comments
R=vsm@google.com

Review URL: https://chromereviews.googleplex.com/120837013
2014-11-20 13:00:08 -08:00
Vijay Menon 8522221df4 Initial codegen skeleton
Invoke with:
> dart bin/checker.dart -o out tests/fieldtest.dart

Run with (node.js installed):
> node runtime/run.js runtime/dart_runtime.js runtime/dart_core.js out/fieldtest/fieldtest.dart.js fieldtest

Here's the output of fieldtest.dart.js:

var fieldtest;
(function (fieldtest) {
  // Class A
  var A = (function () {
    var _initializer = (function (_this) {
      _this.x = 42;
    });
    function A() {
      _initializer(this);
    }
    return A;
  })();
  fieldtest.A = A;

  // Function foo: (A) → void
  function foo(a) {
    dart_core.print(a.x);
  }
  fieldtest.foo = foo;

  // Function bar: (dynamic) → void
  function bar(a) {
    dart_core.print(dart_runtime.dload(a, "x"));
  }
  fieldtest.bar = bar;

  // Function main: () → void
  function main() {
    var a = new A();
    fieldtest.foo(a);
    fieldtest.bar(a);
  }
  fieldtest.main = main;

})(fieldtest || (fieldtest = {}));

R=sigmund@google.com

Review URL: https://chromereviews.googleplex.com/119897013
2014-11-20 12:15:55 -08:00
Vijay Menon c298d19d4b Add flag to check sdk code
R=sigmund@google.com

Review URL: https://chromereviews.googleplex.com/119797013
2014-11-18 09:20:32 -08:00
Sigmund Cherem 411efe695c Use source spans for error messages. This will print error messages in red and
highlight the area of the original source that had the error.

R=vsm@google.com

Review URL: https://chromereviews.googleplex.com/122637013
2014-11-17 17:58:13 -08:00
Vijay Menon 3f27060ad6 Initial checker 2014-11-17 08:50:19 -08:00