By Limin Fu. Released under the GNU Free Documentation License. 
[NAME]
ALL.dao

[TITLE]
Dao Programming Language (Version 2.0)

[DESCRIPTION]

Dao Programming Language
http://daovm.net

Dao is a lightweight and optionally typed programming language with many interesting feat
ures. It includes features that can make concurrent programming much simpler. It has well
designed programming interfaces for easy embedding and extending.

Main features: 
  *  Optional typing with type inference and static type checking;
  *  Object-Oriented Programming (OOP) with classes and mixins;
  *  Abstract interface and concrete interface for advanced OOP;
  *  Code section methods as a better alternative to functional methods;
  *  Support closures, anonymous functions;
  *  Deferred block and exception handling by defer-recover;
  *  Native support for concurrent programming;
  *  Concurrent garbage collection;
  *  Designed and implemented as a register-based virtual machine;
  *  Portable implementation using standard C;
  *  Simple C programming interfaces for easy embedding and extending;
  *  LLVM-based Just-In-Time (JIT) compiling;
  *  Clang-based tool for automatic wrapping of C/C++ libraries;
  *  Released under the Simplified BSD License. 

Please see dao.feature for a more complete list of summarized features.


[STRUCTURE]

dao--| dao: Dao Programming Language (Version 2.0) (209.2 KB)
     |--feature------| dao.feature: Feature Summary (4.8 KB)
     |--changelog----| dao.changelog: ChangeLog (0.8 KB)
     |--guide--------| dao.guide: The Quick and Simple Guide (29.5 KB)
     |--data---------| dao.data: Constants, Variables and Invariables (5.7 KB)
     |               |--const---| dao.data.const: Constants (0.9 KB)
     |               |--var-----| dao.data.var: Variables (1.0 KB)
     |               |--invar---| dao.data.invar: Invariables (2.0 KB)
     |               |--static--| dao.data.static: Static Variables (1.3 KB)
     |                            
     |--type---------| dao.type: Data Types and Type Annotation (77.5 KB)
     |               |--bool-----| dao.type.bool: Boolean Type (0.3 KB)
     |               |--int------| dao.type.int: Integer Type (0.6 KB)
     |               |--float----| dao.type.float: Float Type (0.6 KB)
     |               |--complex--| dao.type.complex: Complex Type (0.6 KB)
     |               |--enum-----| dao.type.enum: Enum or Symbol Type (5.1 KB)
     |               |--string---| dao.type.string: String Type (25.4 KB)
     |               |           |--pattern--| dao.type.string.pattern: String Pattern Matching (11.8 KB)
     |               |           |--method---| dao.type.string.method: Dao string methods (11.1 KB)
     |               |                         
     |               |--array----| dao.type.array: Numeric Array Type (8.7 KB)
     |               |           |--method--| dao.type.array.method: Array methods (6.7 KB)
     |               |                        
     |               |--list-----| dao.type.list: List Container Type (13.9 KB)
     |               |           |--method--| dao.type.list.method: List Methods (13.0 KB)
     |               |                        
     |               |--map------| dao.type.map: Map or Hash Map Container Type (7.5 KB)
     |               |           |--method--| dao.type.map.method: Map Methods (6.0 KB)
     |               |                        
     |               |--tuple----| dao.type.tuple: Tuple Type (1.5 KB)
     |               |--variant--| dao.type.variant: Variant (Disjoint Union) Type (3.3 KB)
     |                             
     |--operator-----| dao.operator: Operators (7.3 KB)
     |               |--arithmetic---| dao.operator.arithmetic: Arithmetic Operators (0.6 KB)
     |               |--comparison---| dao.operator.comparison: Comparison Operators (1.0 KB)
     |               |--logic--------| dao.operator.logic: Logic Operators (0.3 KB)
     |               |--bitwise------| dao.operator.bitwise: Bitwise Operators (0.3 KB)
     |               |--assignment---| dao.operator.assignment: Assignment Operators (1.8 KB)
     |               |--typecast-----| dao.operator.typecast: Type Casting Operators (0.3 KB)
     |               |--misc---------| dao.operator.misc: Miscellaneous Operators (2.5 KB)
     |               |--overloading--| dao.operator.overloading: Operator Overloading (0.1 KB)
     |                                 
     |--control------| dao.control: Control Constructs (8.6 KB)
     |               |--if-else------| dao.control.if-else: If-Else Conditional Control (2.8 KB)
     |               |--for----------| dao.control.for: For Looping Control (2.8 KB)
     |               |--while--------| dao.control.while: While Looping Control (0.7 KB)
     |               |--do-while-----| dao.control.do-while: Do-While Looping Control (0.6 KB)
     |               |--switch-case--| dao.control.switch-case: Switch-Case Control (1.3 KB)
     |                                 
     |--routine------| dao.routine: Routine (7.9 KB)
     |               |--closure--| dao.routine.closure: Anonymous Routine and Closure (2.8 KB)
     |               |--section--| dao.routine.section: Code Section Methods (3.2 KB)
     |                             
     |--class--------| dao.class: Class for Object-Oriented Programming (9.2 KB)
     |               |--definition---| dao.class.definition: Definition (4.7 KB)
     |               |--inheritance--| dao.class.inheritance: Inheritance (1.7 KB)
     |               |--operator-----| dao.class.operator: Operator Overloading (1.6 KB)
     |               |--mixin--------| dao.class.mixin: Mixin Class (0.8 KB)
     |                                 
     |--interface----| dao.interface: Interfaces (4.6 KB)
     |               |--abstract--| dao.interface.abstract: Abstract Interface (1.9 KB)
     |               |--concrete--| dao.interface.concrete: Concrete Interface (2.4 KB)
     |                              
     |--defer-error--| dao.defer-error: Defer Block and Error Handling (11.0 KB)
     |--concurrent---| dao.concurrent: Concurrent Programming (9.6 KB)
     |               |--threading----| dao.concurrent.threading: Multithreading Module (2.9 KB)
     |               |--async-call---| dao.concurrent.async-call: Asynchronous Call (0.7 KB)
     |               |--async-class--| dao.concurrent.async-class: Asynchronous Class (1.7 KB)
     |               |--channel------| dao.concurrent.channel: Communication Channel (3.6 KB)
     |                                 
     |--builtin------| dao.builtin: Built-ins (4.0 KB)
     |               |--math-------| dao.builtin.math: Built-in Math Functions (3.1 KB)
     |               |--exception--| dao.builtin.exception: Exception Types (1.0 KB)
     |                               
     |--module-------| dao.module: Module Loading (2.9 KB)
     |               |--std--| dao.module.std: Built-in Standard Module (0.6 KB)
     |               |--io---| dao.module.io: Built-in IO (Input/Output) Module (1.1 KB)
     |               |       |--method--| dao.module.io.method: IO Module Methods (0.4 KB)
     |               |       |--stream--| dao.module.io.stream: IO Stream Type (0.8 KB)
     |               |                    
     |               |--mt---| dao.module.mt: Built-in Multi-threading Module (1.1 KB)
     |                         
     |--grammar------| dao.grammar: Dao Grammar Specifications (24.6 KB)
                     |--notation----| dao.grammar.notation: Grammar Notations (1.0 KB)
                     |--lexical-----| dao.grammar.lexical: Lexical Structures (7.3 KB)
                     |--constexpr---| dao.grammar.constexpr: Constant Expressions (3.5 KB)
                     |--typename----| dao.grammar.typename: Type Name (3.1 KB)
                     |--expression--| dao.grammar.expression: Expressions (4.0 KB)
                     |--statement---| dao.grammar.statement: Statements (4.0 KB)
                     |--routine-----| dao.grammar.routine: Routines (Functions) (1.0 KB)
                     |--class-------| dao.grammar.class: Class (0.4 KB)