Logix Tutorial: Table of Contents

(One web-page per top-level section)

1 Introduction
1.1 Welcome
1.2 Status and Warnings
1.2.1 Error Messages
1.3 Examples in this Tutorial
2 Installation and starting the Logix shell
2.1 Installing
2.2 The Logix Shell
2.2.1 Standard Python Shell
2.2.2 IPython Shell
3 Introduction For Python Folks
3.1 Expression Based Syntax
3.2 Unsupported Python Syntax
4 Introduction For Lisp Folks
4.1 Function Calls
4.2 Other Operators
4.3 White-space Sensitive Syntax
4.4 Lexical Rules
4.5 Python Semantics
4.6 Symbol Operator
4.7 Quasiquoting
4.8 Macros
5 Standard Logix
5.1 Python Basis
5.2 Function Calls
5.3 Keyword Arguments
5.4 Lists
5.5 Dictionaries
5.6 Object Attributes
5.7 Sequence Operators
5.8 Defining Functions
5.8.1 Argument Preconditions
5.9 Lightweight Lambdas
5.10 Variable Function Arguments
5.11 Testing Lists: forany and forall
5.12 Building Lists: listfor and listwhile
5.13 Scanning Lists: valfor and breakwith
5.14 Function Pipelines
5.15 Timing code
5.16 String Literals
6 Logix Modules
6.1 Packages
7 Languages: Extending and Creating
7.1 Operator Based Syntax
7.1.1 Limitations
7.2 Defining Operators
7.2.1 Operators for New Languages
7.3 Operator Syntax
7.3.1 Binding and Associativity
7.3.2 The Syntax Language
7.3.3 Expressions and Terms
7.3.4 Limitations and Issues
7.4 From Syntax to Code-Data
7.4.1 Syntax Annotation
Named Rules
Optional-rule Alternatives
Trivial Rules
7.5 Free-text
7.5.1 The freetext rule
7.5.2 The optext rule
7.5.3 Code-data for Free-text
7.6 Implementation
7.6.1 Functions
7.6.2 Macros
7.6.3 Quasiquoting
7.6.4 Variable Capture and gensyms
7.6.5 Splicing
7.6.6 Local-Module Escape
7.6.7 Nested quotes
7.6.8 Context Aware Macros
7.7 Multiple Languages
7.7.1 setlang
7.7.2 deflang
Using setlang within deflang
7.7.3 Expressions and Terms Again: The Continuation Operator
7.7.4 The Switchlang Operator
7.7.5 Language Specific Operands
7.7.6 The Outer-Language Operator
7.7.7 Language Inheritance
7.7.8 The Alternative to Inheritance: getops
7.7.9 Operator Base-class
8 Logix from Python
8.1 The logix Module
8.2 Example
9 Logix-Test
9.1 Defining Tests
9.2 The Test-Runner
9.3 Assertion Operators
9.4 Object Patterns
9.4.1 Testing Object Type
9.4.2 Testing Attributes
9.4.3 Testing Contents
9.4.4 Nested Patterns
9.4.5 Test Functions
9.4.6 Using Regexes.
9.4.7 Object Expression
9.5 Mock-Objects
9.5.1 Creating Mock-Objects
9.5.2 Expecting Values
9.5.3 Mock Groups
9.5.4 Faking Object Type
9.5.5 Confirming Pattern Completion
9.5.6 Debugging