1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
using Utils;
namespace VQDR.Expression {
public abstract class OperatorToken : Token {
protected OperatorToken (int position) {
base (position);
}
public static OperatorToken? init_token (string name,
int position)
throws ParseError {
switch (name) {
case "+":
return new AddOperatorToken (position);
case "-":
return new SubtractOperatorToken (position);
case "*":
return new MultiplyOperatorToken (position);
case "/":
return new DivideOperatorToken (position);
case "d":
case "w":
case "t":
return new DiceOperatorToken (position);
default:
break;
}
throw new ParseError.INVALID_CHARECTER (@"Could not decode $name," +
" it is not a valid operation.");
}
}
}
|