Package cruise.umple.compiler
Class Parser
java.lang.Object
cruise.umple.compiler.Parser
- Direct Known Subclasses:
ContentParser,JsonParser,UmpleInternalParser
public class Parser
extends java.lang.Object
Parses an Umple file (.ump) based on grammar rules.
As parsing is going on "tokens" will be created and linked together in a hierarchy fashion based on what was parsed.
-
Constructor Summary
-
Method Summary
Modifier and Type Method Description booleanaddCouple(Couple aCouple)booleanaddCoupleAt(Couple aCouple, int index)booleanaddGrammarRule(java.lang.String aGrammarRule)booleanaddOrMoveCoupleAt(Couple aCouple, int index)booleanaddOrMoveRuleAt(Rule aRule, int index)booleanaddRule(Rule aRule)voidaddRule(java.lang.String input)booleanaddRuleAt(Rule aRule, int index)intaddRulesInFile(java.lang.String filenameOrResourcePath)voiddelete()voidgenRuleHtml(java.lang.String ruleName, java.lang.StringBuilder answer, java.lang.String cleanedUpRule, int hasMinus, int hasHash)voidgenRuleLezer(java.lang.String ruleName, java.lang.StringBuilder answer, java.lang.String cleanedUpRule, int hasMinus, int hasHash)CouplegetCouple(int index)java.util.List<Couple>getCouples()java.lang.StringgetFilename()The Umple file (.ump) that will be parsed.java.lang.StringgetGrammarRule(int index)java.lang.String[]getGrammarRules()java.lang.StringgetName()default 'program'ParseResultgetParseResult()The results of the parsing, and any errors/warning messages will be stored here.TokengetRootToken()Every parser makes use of "tokens" that are built up based on what is parsed.RulegetRule(int index)RulegetRule(java.lang.String ruleName)java.util.List<Rule>getRules()A parser can have many "rules", likewise each rule can be part of many "parsers"; hence many-to-many.TokengetToken(int index)java.util.List<Token>getTokens()booleanhasCouples()booleanhasGrammarRules()booleanhasRules()booleanhasTokens()intindexOf(Token aToken)intindexOfCouple(Couple aCouple)intindexOfGrammarRule(java.lang.String aGrammarRule)intindexOfRule(Rule aRule)static intminimumNumberOfCouples()static intminimumNumberOfRules()intnumberOfCouples()intnumberOfGrammarRules()intnumberOfRules()intnumberOfTokens()ParseResultparse(java.lang.String ruleName, java.lang.String input)Parses input based on a rule.booleanremoveCouple(Couple aCouple)booleanremoveGrammarRule(java.lang.String aGrammarRule)booleanremoveRule(Rule aRule)Tokenreset()booleansetFilename(java.lang.String aFilename)booleansetName(java.lang.String aName)booleansetParseResult(ParseResult aParseResult)booleansetRootToken(Token aRootToken)java.lang.StringtoGrammar()Default grammar generation to htmljava.lang.StringtoGrammarHtml()Used to generate a nice html representation for the user manualjava.lang.StringtoGrammarLezer()Used to generate a lezer grammar.java.lang.StringtoGrammarNoStyle()java.lang.StringtoGrammarParts(java.lang.String rulesToOutput)Default grammar output to html formatjava.lang.StringtoGrammarParts(java.lang.String rulesToOutput, java.lang.String grammarFormat)Converts specific Umple rules to an alternative format If rulesToOutput is empty then all rules are outputjava.lang.StringtoString()java.lang.StringBuffertoString(java.lang.StringBuffer stringSoFar, Token currentToken)Output the parse tree.
-
Constructor Details
-
Method Details
-
setFilename
public boolean setFilename(java.lang.String aFilename) -
setName
public boolean setName(java.lang.String aName) -
addGrammarRule
public boolean addGrammarRule(java.lang.String aGrammarRule) -
removeGrammarRule
public boolean removeGrammarRule(java.lang.String aGrammarRule) -
setParseResult
-
setRootToken
-
getFilename
public java.lang.String getFilename()The Umple file (.ump) that will be parsed. -
getName
public java.lang.String getName()default 'program' -
getGrammarRule
public java.lang.String getGrammarRule(int index) -
getGrammarRules
public java.lang.String[] getGrammarRules() -
numberOfGrammarRules
public int numberOfGrammarRules() -
hasGrammarRules
public boolean hasGrammarRules() -
indexOfGrammarRule
public int indexOfGrammarRule(java.lang.String aGrammarRule) -
getParseResult
The results of the parsing, and any errors/warning messages will be stored here. -
getRootToken
Every parser makes use of "tokens" that are built up based on what is parsed. In the end it looks almost like a "tree". This is the starting token for which everything will be built off of (sub-tokens). -
getRule
-
getRules
A parser can have many "rules", likewise each rule can be part of many "parsers"; hence many-to-many. -
numberOfRules
public int numberOfRules() -
hasRules
public boolean hasRules() -
indexOfRule
-
getCouple
-
getCouples
-
numberOfCouples
public int numberOfCouples() -
hasCouples
public boolean hasCouples() -
indexOfCouple
-
minimumNumberOfRules
public static int minimumNumberOfRules() -
addRule
-
removeRule
-
addRuleAt
-
addOrMoveRuleAt
-
minimumNumberOfCouples
public static int minimumNumberOfCouples() -
addCouple
-
removeCouple
-
addCoupleAt
-
addOrMoveCoupleAt
-
delete
public void delete() -
reset
-
getRule
-
toString
public java.lang.String toString()- Overrides:
toStringin classjava.lang.Object
-
toGrammarNoStyle
public java.lang.String toGrammarNoStyle() -
toGrammar
public java.lang.String toGrammar()Default grammar generation to html -
toGrammarHtml
public java.lang.String toGrammarHtml()Used to generate a nice html representation for the user manual -
toGrammarLezer
public java.lang.String toGrammarLezer()Used to generate a lezer grammar. See https://lezer.codemirror.net/docs/guide/#writing-a-grammar -
toGrammarParts
public java.lang.String toGrammarParts(java.lang.String rulesToOutput)Default grammar output to html format -
toGrammarParts
public java.lang.String toGrammarParts(java.lang.String rulesToOutput, java.lang.String grammarFormat)Converts specific Umple rules to an alternative format If rulesToOutput is empty then all rules are output -
genRuleHtml
public void genRuleHtml(java.lang.String ruleName, java.lang.StringBuilder answer, java.lang.String cleanedUpRule, int hasMinus, int hasHash) -
genRuleLezer
public void genRuleLezer(java.lang.String ruleName, java.lang.StringBuilder answer, java.lang.String cleanedUpRule, int hasMinus, int hasHash) -
toString
Output the parse tree. The code originally here has been refactored to Token class -
addRulesInFile
public int addRulesInFile(java.lang.String filenameOrResourcePath) -
addRule
public void addRule(java.lang.String input) -
parse
Parses input based on a rule.- Parameters:
ruleName- The rule to parse based on.input- The textual input to parse (such as that from the Umple file).- Returns:
- The result of the parsing.
-
getToken
-
getTokens
-
numberOfTokens
public int numberOfTokens() -
hasTokens
public boolean hasTokens() -
indexOf
-