mirror of
https://github.com/BorysLevytskyi/BitwiseCmd.git
synced 2025-12-10 06:52:05 +01:00
Move some code around
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import React from 'react';
|
||||
import formatter from '../../core/formatter';
|
||||
import BinaryStringView, { FlipBitEventArg } from '../../core/components/BinaryString';
|
||||
import BitwiseExpressionViewModel from './BitwiseExpressionModel';
|
||||
import BitwiseResultViewModel from './BitwiseResultViewModel';
|
||||
import { ExpressionInput, Expression } from '../expression-interfaces';
|
||||
import { OperatorExpression, ScalarExpression } from '../expression';
|
||||
|
||||
@@ -14,7 +14,7 @@ type BitwiseOperationExpressionViewState = {
|
||||
|
||||
}
|
||||
|
||||
export default class BitwiseOperationExpressionView extends React.Component<BitwiseOperationExpressionViewProps, BitwiseOperationExpressionViewState> {
|
||||
export default class BitwiseResultView extends React.Component<BitwiseOperationExpressionViewProps, BitwiseOperationExpressionViewState> {
|
||||
constructor(props: BitwiseOperationExpressionViewProps) {
|
||||
super(props);
|
||||
this.state = {};
|
||||
@@ -33,7 +33,7 @@ export default class BitwiseOperationExpressionView extends React.Component<Bitw
|
||||
}
|
||||
|
||||
getRows() : JSX.Element[] | null {
|
||||
var model = BitwiseExpressionViewModel.createModel(this.props.expression, this.props.emphasizeBytes);
|
||||
var model = BitwiseResultViewModel.createModel(this.props.expression, this.props.emphasizeBytes);
|
||||
|
||||
return model.items.map((itm, i) =>
|
||||
<ExpressionRow
|
||||
@@ -16,7 +16,7 @@ type ExpressionItemModel = {
|
||||
label: string;
|
||||
}
|
||||
|
||||
export default class BitwiseExpressionViewModel {
|
||||
export default class BitwiseResultViewModel {
|
||||
|
||||
emphasizeBytes: boolean;
|
||||
items: ExpressionItemModel[];
|
||||
@@ -31,17 +31,17 @@ export default class BitwiseExpressionViewModel {
|
||||
}
|
||||
|
||||
static buildListOfNumbers(expr : ListOfNumbersExpression, config : Config) {
|
||||
var model = new BitwiseExpressionViewModel(config);
|
||||
var model = new BitwiseResultViewModel(config);
|
||||
expr.children.forEach(op => model.addScalarRow(op));
|
||||
model.maxNumberOfBits = BitwiseExpressionViewModel.applyEmphasizeBytes(model.maxNumberOfBits, model.emphasizeBytes);
|
||||
model.maxNumberOfBits = BitwiseResultViewModel.applyEmphasizeBytes(model.maxNumberOfBits, model.emphasizeBytes);
|
||||
return model;
|
||||
}
|
||||
|
||||
static buildMultiple (expr : BitwiseOperationExpression, config : Config) {
|
||||
static buildBitwiseOperation (expr : BitwiseOperationExpression, config : Config) {
|
||||
|
||||
var op = expr.children[0],
|
||||
i = 0, len = expr.children.length,
|
||||
ex, m = new BitwiseExpressionViewModel(config);
|
||||
ex, m = new BitwiseResultViewModel(config);
|
||||
|
||||
var prev : ScalarExpression | null = null;
|
||||
|
||||
@@ -57,7 +57,7 @@ export default class BitwiseExpressionViewModel {
|
||||
|
||||
// If it a single NOT expression
|
||||
if(eo.isNotExpression) {
|
||||
m.addExpressionOperandRow(eo);
|
||||
m.addOperatorRow(eo);
|
||||
var notResult = eo.evaluate();
|
||||
m.addExpressionResultRow(notResult);
|
||||
prev = notResult;
|
||||
@@ -68,21 +68,12 @@ export default class BitwiseExpressionViewModel {
|
||||
} else {
|
||||
|
||||
prev = eo.evaluate(prev as ScalarExpression);
|
||||
m.addExpressionOperandRow(eo);
|
||||
m.addOperatorRow(eo);
|
||||
m.addExpressionResultRow(prev);
|
||||
}
|
||||
}
|
||||
|
||||
m.maxNumberOfBits = BitwiseExpressionViewModel.applyEmphasizeBytes(m.maxNumberOfBits, m.emphasizeBytes);
|
||||
return m;
|
||||
};
|
||||
|
||||
static buildNot (expression: OperatorExpression, config : Config) {
|
||||
|
||||
var m = new BitwiseExpressionViewModel(config);
|
||||
m.addExpressionOperandRow(expression);
|
||||
m.addExpressionResultRow(expression.evaluate());
|
||||
m.maxNumberOfBits = BitwiseExpressionViewModel.applyEmphasizeBytes(m.maxNumberOfBits, m.emphasizeBytes);
|
||||
m.maxNumberOfBits = BitwiseResultViewModel.applyEmphasizeBytes(m.maxNumberOfBits, m.emphasizeBytes);
|
||||
return m;
|
||||
};
|
||||
|
||||
@@ -98,7 +89,7 @@ export default class BitwiseExpressionViewModel {
|
||||
});
|
||||
};
|
||||
|
||||
addExpressionOperandRow(expr: OperatorExpression) {
|
||||
addOperatorRow(expr: OperatorExpression) {
|
||||
|
||||
const resultNumber = expr.isNotExpression ? expr.evaluate() : expr.getUnderlyingScalarOperand();
|
||||
const bits = calc.numberOfBitsDisplayed(resultNumber.value);
|
||||
@@ -157,16 +148,16 @@ export default class BitwiseExpressionViewModel {
|
||||
return bits;
|
||||
};
|
||||
|
||||
static createModel(expr : ExpressionInput, emphasizeBytes: boolean) : BitwiseExpressionViewModel {
|
||||
static createModel(expr : ExpressionInput, emphasizeBytes: boolean) : BitwiseResultViewModel {
|
||||
if(expr instanceof ListOfNumbersExpression) {
|
||||
return BitwiseExpressionViewModel.buildListOfNumbers(expr, {
|
||||
return BitwiseResultViewModel.buildListOfNumbers(expr, {
|
||||
emphasizeBytes: emphasizeBytes,
|
||||
allowFlipBits: true
|
||||
});
|
||||
}
|
||||
|
||||
if(expr instanceof BitwiseOperationExpression) {
|
||||
return BitwiseExpressionViewModel.buildMultiple(expr, {
|
||||
return BitwiseResultViewModel.buildBitwiseOperation(expr, {
|
||||
emphasizeBytes: emphasizeBytes,
|
||||
allowFlipBits: false
|
||||
});
|
||||
@@ -4,7 +4,6 @@ import ListOfNumbersExpression from './ListOfNumbersExpression';
|
||||
import BitwiseOperationExpression from './BitwiseOperationExpression';
|
||||
import { ExpressionInput, Expression } from './expression-interfaces';
|
||||
import { NumberBase } from '../core/formatter';
|
||||
import { Match } from '@testing-library/react';
|
||||
|
||||
export { default as ScalarExpression } from './ScalarExpression';
|
||||
export { default as OperatorExpression } from './OperatorExpression';
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import React from 'react';
|
||||
import AppState from '../shell/AppState';
|
||||
import { CmdShell, CommandInput } from '../shell/cmd';
|
||||
import BitwiseOperationExpressionView from './components/BitwiseOperationExpressionView';
|
||||
import BitwiseResultView from './components/BitwiseResultView';
|
||||
import {parser} from './expression';
|
||||
|
||||
const expressionAppModule = {
|
||||
@@ -12,7 +12,7 @@ const expressionAppModule = {
|
||||
canHandle: (input:string) => parser.canParse(input),
|
||||
handle: function(c: CommandInput) {
|
||||
var expr = parser.parse(c.input);
|
||||
appState.addCommandResult(c.input, <BitwiseOperationExpressionView expression={expr!} emphasizeBytes={appState.emphasizeBytes} />);
|
||||
appState.addCommandResult(c.input, <BitwiseResultView expression={expr!} emphasizeBytes={appState.emphasizeBytes} />);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user