Date post: | 26-Dec-2014 |
Category: |
Technology |
Upload: | lukas-renggli |
View: | 1,653 times |
Download: | 0 times |
Language BoxesBending the Host Language
with Modular Language Changes
Lukas Renggli, Marcus Denker, Oscar Nierstrasz
Marco Zanoli, cc-by-sa, 2.5, www.wikipedia.de, 2006
Marco Zanoli, cc-by-sa, 2.5, www.wikipedia.de, 2006
Marco Zanoli, cc-by-sa, 2.5, www.wikipedia.de, 2006
§
§§
Marco Zanoli, cc-by-sa, 2.5, www.wikipedia.de, 2006
Marco Zanoli, cc-by-sa, 2.5, www.wikipedia.de, 2006
Marco Zanoli, cc-by-sa, 2.5, www.wikipedia.de, 2006
Marco Zanoli, cc-by-sa, 2.5, www.wikipedia.de, 2006
§
§§
Marco Zanoli, cc-by-sa, 2.5, www.wikipedia.de, 2006
Host Environment
Host Environment
Tool Infrastructure
Editor
Compiler
Debugger
Syntax
Language 1
Language 2
Editor
Compiler
Debugger
Syntax
Language 1
Language 2
Editor
Compiler
Debugger
Syntax
Language 1
Language 2
Editor
Compiler
Debugger
Syntax
Language 1
Language 2
Marco Zanoli, cc-by-sa, 2.5, www.wikipedia.de, 2006
Host Environment
Tool Infrastructure
Host Environment
Tool Infrastructure
Language Boxes
Language BoxModel
LanguageChange
LanguageConcern
LanguageScope
LanguageBox
*
*
*
*
IV + VII = XI
LanguageChange
LanguageConcern
LanguageScope
LanguageBox
*
*
*
*
Language Change
Insert FRAGMENT(before|after) PRODUCTION
as (choice|sequence|replacement)
Language Change
Insert RomanNumberbefore NumberLiteral
as a choice.
Language Change
Literal: BooleanLiteral
NilLiteral
NumberLiteral
StringLiteral
ArrayLiteral
NumberLiteral: IntegerLiteral
FloatLiteral
Language Change
'I' .. 'M'RomanNumber:
Language Change
Literal: BooleanLiteral
NilLiteral
NumberLiteral'
StringLiteral
ArrayLiteral
NumberLiteral': RomanNumber
NumberLiteral
Language Change
1st Class Grammar
Scannerless, Packrat
Language Concern
Production Action
Language Concern
Compiler
aToken value romanToArabic lift
Highlighting
aToken -> Color gray
Language Concern
Custom Actions
Language Concern
Language Scope
Active?
Language Scope
System
Language Scope
Packages
Language Scope
Classes
Language Scope
Methods
LanguageChange
LanguageConcern
LanguageScope
*
*
*
*
LanguageBox
Conflicts
LanguageBox 1
LanguageBox 2
LanguageBox 3
LanguageBox 4
LanguageBox 1
LanguageBox 2
LanguageBox 3
LanguageBox 4
LanguageBox 3
LanguageBox 3
LanguageBox 1
LanguageBox 2
LanguageBox 4
LanguageBox 3
LanguageBox 1
LanguageBox 2
LanguageBox 4
HostGrammar
LanguageBox 3
LanguageBox 1
LanguageBox 2
LanguageBox 4
HostGrammar
LanguageBox 3
LanguageBox 1
LanguageBox 2
LanguageBox 4
HostGrammar
LanguageBox 3
LanguageBox 1
LanguageBox 2
LanguageBox 4
HostGrammar'
HostGrammar'
might consist
of unused parts
HostGrammar'
might beambiguousmight consist
of unused parts
HostGrammar'
PackratParser
SELECT * FROM users
SELECT * FROM users<SQL: >
Marco Zanoli, cc-by-sa, 2.5, www.wikipedia.de, 2006
scg.unibe.ch/research/helvetia