Move some code around

This commit is contained in:
BorysLevytskyi
2023-05-06 18:10:31 +02:00
parent 334b20ce26
commit aa63449f99
4 changed files with 17 additions and 27 deletions

View File

@@ -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

View File

@@ -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
});

View File

@@ -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';

View File

@@ -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} />);
}
});
}