1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.millscript.office.excel.records.formula;
22
23 import org.millscript.millscript.expr.ConstantExpr;
24 import org.millscript.office.excel.FormulaTokenSyntax;
25 import org.millscript.office.excel.FormulaTokenizer;
26 import org.millscript.office.excel.alerts.BIFFAlert;
27 import org.millscript.office.excel.versions.BIFF2;
28 import org.millscript.office.excel.versions.BIFF3;
29 import org.millscript.office.excel.versions.BIFF4S;
30 import org.millscript.office.excel.versions.BIFF4W;
31 import org.millscript.office.excel.versions.BIFF5;
32 import org.millscript.office.excel.versions.BIFF7;
33 import org.millscript.office.excel.versions.BIFF8;
34 import org.millscript.office.excel.versions.BIFF8X;
35
36 /**
37 *
38 */
39 public class BoolTokenSyntax extends FormulaTokenSyntax implements BIFF2, BIFF3, BIFF4S, BIFF4W, BIFF5, BIFF7, BIFF8, BIFF8X {
40
41 /**
42 * @see org.millscript.office.excel.FormulaTokenSyntax#newToken(org.millscript.office.excel.FormulaTokenizer)
43 */
44 @Override
45 public void newToken( final FormulaTokenizer tokenizer ) {
46
47 final byte bool = tokenizer.readByte();
48 switch ( bool ) {
49 case 0x00:
50 tokenizer.pushExpr(
51 new ConstantExpr( Boolean.FALSE )
52 );
53 case 0x01:
54 tokenizer.pushExpr(
55 new ConstantExpr( Boolean.TRUE )
56 );
57 default:
58 throw new BIFFAlert(
59 "Unexpected value for tBool formula token"
60 ).culprit( "value", bool ).mishap();
61 }
62 }
63
64 }