#actionscript #data-model #as3 #actionscript3

nightly mxmlextrema-mxmlcaot

ActionScript 3 language semantic data model

13 releases

0.3.12 Sep 8, 2024
0.3.11 Aug 23, 2024

#413 in Development tools

Download history 366/week @ 2024-08-12 621/week @ 2024-08-19 10/week @ 2024-08-26 97/week @ 2024-09-02 49/week @ 2024-09-09 30/week @ 2024-09-16 13/week @ 2024-09-23 5/week @ 2024-09-30 2/week @ 2024-10-07

799 downloads per month

Apache-2.0

290KB
6K SLoC

mxmlextrema::mxmlcaot

mxmlextrema::mxmlcaot is a Rust library for creating, inspecting and modifying the semantic data of the ActionScript 3 language ahead of time.

mxmlextrema::mxmlcaot implements three dimensional names, property lookup, conversion, number representation, interface implementation log, method overriding, applying parameterized types, environment variable cache, unused entity tracking, a factory, and several entities (for example, classes, methods and variables).

mxmlextrema::mxmlcaot does not include anything related to the Adobe Flex framework; these are implemented through a compiler.

Example

Create a package foo.bar and log its fully qualified name:

let db = Database::new(Default::default());
let foo_bar = db.factory().create_package(["foo", "bar"]);
println!("Package name: {}", foo_bar.fully_qualified_name());

Global object requisites

The minimum requisites for the framework globals so that the MXMLCAOT database does not emit an infinite DeferError includes defining the following classes. Ensure you have defined them; the properties and methods are not required within them in MXMLCAOT.

  • Object
  • Boolean
  • Number
  • int
  • uint
  • float
  • String
  • Array
  • Namespace
  • Function
  • Class
  • XML
  • XMLList
  • RegExp
  • Date
  • Promise.<T>
  • Vector.<T> (in the top-level package)
  • frameworkname.util.ByteArray
  • frameworkname.util.Dictionary
  • frameworkname.util.Proxy

License

Apache 2.0

Dependencies

~5–7MB
~133K SLoC