net.stefanhauser.Printy.GUI.Config.Parser
public: class Parser;
public class Parser;
Public Class Parser
Dieser Parser wird zum Lesen einer Konfigurationsdatei verwendet. Er wurde mit dem Werkzeug COCO erstellt.
/*----------------------------------------------------------------- Config.atg 2005-11 Stefan Hauser Original Version by Philip Grasböck -------------------------------------------------------------------*/ COMPILER PrintyConfig CHARACTERS digit = "0123456789". tab = '\t'. cr = '\r'. lf = '\n'. eol = cr + lf. TOKENS number = ['-'] digit { digit }. COMMENTS FROM "/*" TO "*/" NESTED COMMENTS FROM "//" TO cr lf IGNORE eol + tab /*-------------------------------------------------------------------------*/ PRODUCTIONS PrintyConfig = { (. Rule r = new Rule(); .) Rule<r> ';' (. Rules.Add(r); .) } . Rule<Rule r> = ConfigRule<r> | HyperConfigRule<r>. ConfigRule<Rule r> = ( SpaceRule<r> (. r.Type = RuleType.SpaceRule; .) | BreakRule<r> (. r.Type = RuleType.BreakRule; .) | OpenRule<r> (. r.Type = RuleType.OpenRule; .) | CloseRule<r> (. r.Type = RuleType.CloseRule; .) | HideRule<r> (. r.Type = RuleType.HideRule; .) | OverlapRule<r> (. r.Type = RuleType.OverlapRule; .) ) . HyperConfigRule<Rule r> = ( StyleRule<r> (. r.Type = RuleType.StyleRule; .) | ClassRule<r> (. r.Type = RuleType.ClassRule; .) ) . SpaceRule<Rule r> = "space" SymbolAllIndent<out r.FirstSymbol> SymbolAll<out r.SecondSymbol> number (. r.Number = Convert.ToInt32(t.val); .) . BreakRule<Rule r> = "break" SymbolAll<out r.FirstSymbol> SymbolAll<out r.SecondSymbol> ( number (. r.Number = Convert.ToInt32(t.val); .) | "default" (. r.BreakMode = BreakMode.Default; .) | "always" (. r.BreakMode = BreakMode.Always; .) | "never" (. r.BreakMode = BreakMode.Never; .) ) . OpenRule<Rule r> = "open" ( (. r.CreateBitSet(); .) BitSet<r> | Bit<out r.FirstSymbol> ) . CloseRule<Rule r> = "close" ( (. r.CreateBitSet(); .) BitSet<r> | Bit<out r.FirstSymbol> ) . HideRule<Rule r> = "hide" ( (. r.CreateBitSet(); .) BitSet<r> | Bit<out r.FirstSymbol> ) . OverlapRule<Rule r> = "overlap" ( (. r.CreateBitSet(); .) BitSet<r> | Bit<out r.FirstSymbol> ) . StyleRule<Rule r> = "style" ( (. r.CreateBitSet(); .) BitSet<r> | Bit<out r.FirstSymbol> ) . ClassRule<Rule r> = "class" Text (. r.Text = t.val; .) [ SymbolAll<out r.FirstSymbol> ] Text (. r.FurtherText = new ArrayList(); r.FurtherText.Add(t.val); .) { Text (. r.FurtherText.Add(t.val); .) } . Bit<out Symbol sym> = SymbolAll <out sym> . BitSet<Rule rule> = (. Symbol sym = Symbol.UNSET; .) '[' { SingleSymbol<out sym> (. rule.Add(sym); .) } ']' . SymbolAll<out Symbol sym> = (. sym = Symbol.UNSET; .) ( "ALL" (. sym = Symbol.ALL; .) | SingleSymbol<out sym> ) . SymbolAllIndent<out Symbol sym> = (. sym = Symbol.UNSET; .) ( "INDENT" (. sym = Symbol.INDENT; .) | SymbolAll<out sym> ) . SingleSymbol<out Symbol sym> = (. sym = Symbol.UNSET; .) ( "Production" (. sym = Symbol.Production; .) | "Symbol" (. sym = Symbol.Symbol; .) | "Literal" (. sym = Symbol.Literal; .) | "Open" (. sym = Symbol.Open; .) | "Close" (. sym = Symbol.Close; .) | "Assign" (. sym = Symbol.Assign; .) | "Separator" (. sym = Symbol.Seperator; .) | "Delimiter" (. sym = Symbol.Delimiter; .) | "InnerComment" (. sym = Symbol.InnerComment; .) | "OuterComment" (. sym = Symbol.OuterComment; .) | "Attribute" (. sym = Symbol.Attribute; .) | "Resolver" (. sym = Symbol.Resolver; .) | "Prolog" (. sym = Symbol.Prolog; .) | "Epilog" (. sym = Symbol.Epilog; .) | "Action" (. sym = Symbol.Action; .) | "LineNumber" (. sym = Symbol.LineNumber; .) ) . Text = '<' { ANY } '>' . END PrintyConfig.
Copyright (c) 2005. All rights reserved.
|