diff options
author | Martin Odersky <odersky@gmail.com> | 2013-05-14 12:40:53 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2013-05-14 12:40:53 +0200 |
commit | 348dd53f384be31ec674814f9b9d97e89664b522 (patch) | |
tree | 2b8cc974b3422ee470df8a36cbe32126396d3182 /src/dotty/tools/dotc/parsing/package.scala | |
parent | fec318dedaa10bf7ffaebd7aaf4a99e05ac0312a (diff) | |
download | dotty-348dd53f384be31ec674814f9b9d97e89664b522.tar.gz dotty-348dd53f384be31ec674814f9b9d97e89664b522.tar.bz2 dotty-348dd53f384be31ec674814f9b9d97e89664b522.zip |
Made precedence common between parsers and printers
Diffstat (limited to 'src/dotty/tools/dotc/parsing/package.scala')
-rw-r--r-- | src/dotty/tools/dotc/parsing/package.scala | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/dotty/tools/dotc/parsing/package.scala b/src/dotty/tools/dotc/parsing/package.scala new file mode 100644 index 000000000..b829bd313 --- /dev/null +++ b/src/dotty/tools/dotc/parsing/package.scala @@ -0,0 +1,32 @@ +package dotty.tools.dotc + +import util.Chars._ +import core.Names.Name +import core.StdNames.nme +import core.NameOps._ + +package object parsing { + + def precedence(operator: Name): Int = + if (operator eq nme.ERROR) -1 + else { + val firstCh = operator(0) + if (isScalaLetter(firstCh)) 1 + else if (operator.isOpAssignmentName) 0 + else firstCh match { + case '|' => 2 + case '^' => 3 + case '&' => 4 + case '=' | '!' => 5 + case '<' | '>' => 6 + case ':' => 7 + case '+' | '-' => 8 + case '*' | '/' | '%' => 9 + case _ => 10 + } + } + + def minPrec = 0 + def maxPrec = 10 + +}
\ No newline at end of file |