Eli   Documents

General Information

 o Eli: Translator Construction Made Easy
 o Global Index
 o Frequently Asked Questions
 o Typical Eli Usage Errors

Tutorials

 o Quick Reference Card
 o Guide For new Eli Users
 o Release Notes of Eli
 o Tutorial on Name Analysis
 o Tutorial on Scope Graphs
 o Tutorial on Type Analysis
 o Typical Eli Usage Errors

Reference Manuals

 o User Interface
 o Eli products and parameters
 o LIDO Reference Manual
 o Typical Eli Usage Errors

Libraries

 o Eli library routines
 o Specification Module Library

Translation Tasks

 o Lexical analysis specification
 o Syntactic Analysis Manual
 o Computation in Trees

Tools

 o LIGA Control Language
 o Debugging Information for LIDO
 o Graphical ORder TOol

 o FunnelWeb User's Manual

 o Pattern-based Text Generator
 o Property Definition Language
 o Operator Identification Language
 o Tree Grammar Specification Language
 o Command Line Processing
 o COLA Options Reference Manual

 o Generating Unparsing Code

 o Monitoring a Processor's Execution

Administration

 o System Administration Guide

Mail Home

Tutorial for Name Analysis Using ScopeGraphs

Previous Chapter Table of Contents


Index

A

Abstract syntax of identifiers
Inheritance
Constructs obeying different scope rules
Tree Structure
Classes
Tree Structure
Procedures
Libraries
Qualified names
Abstract syntax tree
Reusing identifiers in the same scope
Import on demand
Basic name analysis
Type-qualified entity names
Access rules
Inheritance
Error reporting
Position control
Libraries
Import on demand
Type-qualified edge names
Reusing identifiers in the same scope
Access rules
Type-qualified entity names
Reusing identifiers in the same scope
Predefined Identifiers
Type-qualified entity names
Constructs obeying different scope rules
Access rules
Reusing identifiers in the same scope
Type-qualified entity names
Libraries
Access rules
Type-qualified edge names
Qualified names
Type-qualified entity names
Single import
Reusing identifiers in the same scope
Connect to the Typing module
Access rules
Tree Structure
AccCtl.c
Access rules
AccessNodesFromQualifier.c
Type-qualified entity names
accessPack.nl
Access rules
Add the path edge to the graph
Type-qualified edge names
ambig.nl
Reusing identifiers in the same scope
Applied occurrence of a type identifier
Connect to the Typing module
Attribute referencing an entity
Basic name analysis
Attribute representing an identifier
Basic name analysis

B

Bindings.specs
Basic name analysis

C

Call-back function to verify inheritance paths
Access rules
Check acceptability at the tip of a path edge
Access rules
Check acceptability of a qualified identifier
Access rules
clash.nl
Selecting Acceptable Bindings
Common private access check
Access rules
Construct defining one or more entities of the same type
Connect to the Typing module
Construct that represents a subtree denoting a type
Connect to the Typing module
cscope.nl
Position control

D

Defining occurrence of a type identifier
Connect to the Typing module
Defining occurrence of an identifier for a typed entity
Connect to the Typing module
demand.nl
Import on demand
DisambiguateGraphs.c
Reusing identifiers in the same scope

E

edges.nl
Inheritance
Ensure that types are defined
Type-qualified edge names
Establish a path edge to a superclass
Inheritance
Establish the ownership relation
Qualified names
Establish the Type attribute of Type
Connect to the Typing module
expr.nl
Interaction with Type Analysis

G

gambler.nl
Inheritance
gcd.nl
Procedures

H

hide.nl
Import on demand

I

Implementation of the NameLan reclassification
Reusing identifiers in the same scope
Inherit the appropriate roles
Single import
Single import

L

lcl.nl
Exercises

M

machar.nl
Kernel Language
Make contexts of complete names explicit
Qualified names
Import on demand
Single import
Inheritance
Interaction with Type Analysis
Single import
Type-qualified edge names
Mappings from concrete symbols to abstract symbols
Tree Structure
maxsum.nl
Constructs obeying different scope rules
mgcd.nl
Reusing identifiers in the same scope

N

NameLan.con
Text structure
NameLan.gla
Text structure
NameLan.lido
Tree Structure
NameLan.map
Tree Structure
NameLan.pdl
Connect to the Typing module
NameLan.specs
Tree Structure

O

object.nl
Predefined Identifiers

P

Partition the program analysis
Type-qualified edge names
Type-qualified edge names
Phrase structure
Constructs obeying different scope rules
Access rules
Single import
Import on demand
Text structure
Inheritance
Qualified names
Type-qualified edge names
Libraries
Interaction with Type Analysis
Classes
Procedures
pkg.nl
Libraries
PosCtl.c
Position control
Predef.c
Predefined Identifiers
Predef.d
Predefined Identifiers
Predef.h
Predefined Identifiers
Predef.head
Predefined Identifiers
private.nl
Access rules
Properties and property computations
Access rules
Type-qualified entity names
Connect to the Typing module
Predefined Identifiers
Access rules
Position control

Q

Qualified names lookup in complete graphs
Qualified names
Qualified names

R

random.nl
Classes
Report a collision error in a single import
Single import
Report a multiply-defined identifier
Error reporting
Report an undefined identifier
Error reporting

S

ScopeGraphs.h
Import on demand
ScopeGraphs.h content
Reusing identifiers in the same scope
Import on demand
Reusing identifiers in the same scope
Set WLInsertDef attributes
Single import
Single import
Single import
Single import
single.nl
Single import
Specification files
Predefined Identifiers
Tree Structure
Connect to the Typing module
Procedures
Reusing identifiers in the same scope
Basic name analysis
Type-qualified entity names
Constructs obeying different scope rules
Access rules
Position control
Error reporting
Predefined Identifiers
Import on demand
Connect to the Typing module
Specify the Key attribute of a WLName
Inheritance
Specify worklist computations
Inheritance

T

Text.specs
Exercises
Tree nodes playing ScopeGraphs roles
Basic name analysis

W

with.nl
Type-qualified edge names
wlblock.nl
Exercises

Previous Chapter Table of Contents