From da45699c59a4a8bc11a37514877025a7141278ef Mon Sep 17 00:00:00 2001 From: Sorrel Bri Date: Mon, 2 Mar 2020 22:46:08 -0800 Subject: [PATCH] debug parse_latl, hook up Output to state --- src/PhonoChangeApplier.js | 4 ++-- src/components/LatlOutput.js | 4 ++-- src/components/Output.js | 3 ++- src/reducers/reducer.clear.js | 2 +- src/reducers/reducer.latl.js | 9 +++------ src/reducers/reducer.results.js | 6 +++--- 6 files changed, 13 insertions(+), 15 deletions(-) diff --git a/src/PhonoChangeApplier.js b/src/PhonoChangeApplier.js index d33ecac..0b3fe40 100644 --- a/src/PhonoChangeApplier.js +++ b/src/PhonoChangeApplier.js @@ -21,7 +21,7 @@ const PhonoChangeApplier = () => { {}, initState ) - const { lexicon, phones, phonemes, epochs, options, features, results, errors, latl } = state; + const { lexicon, phones, phonemes, epochs, options, features, results, errors, latl, parseResults } = state; return ( <> @@ -30,7 +30,7 @@ const PhonoChangeApplier = () => { Back to GUI
- +
diff --git a/src/components/LatlOutput.js b/src/components/LatlOutput.js index 4984b2b..773459d 100644 --- a/src/components/LatlOutput.js +++ b/src/components/LatlOutput.js @@ -2,7 +2,7 @@ import React from 'react'; import './LatlOutput.scss'; import Output from './Output'; -const LatlOutput = ({results, options, dispatch, errors}) => { +const LatlOutput = ({results, options, dispatch, errors, parseResults}) => { const handleClick = e => dispatchFunc => { e.preventDefault() return dispatchFunc(); @@ -61,7 +61,7 @@ const LatlOutput = ({results, options, dispatch, errors}) => { value="Run" /> - + ); } diff --git a/src/components/Output.js b/src/components/Output.js index cb0ed75..db2d281 100644 --- a/src/components/Output.js +++ b/src/components/Output.js @@ -2,7 +2,7 @@ import React from 'react'; import './Output.scss'; const Output = props => { - const { results, options, errors } = props; + const { results, options, errors, parseResults } = props; const renderResults = () => { switch(options.output) { case 'default': @@ -28,6 +28,7 @@ const Output = props => {

Results of Run

+ {parseResults ? parseResults : <>} {results && results.length ? renderResults() : <>}
diff --git a/src/reducers/reducer.clear.js b/src/reducers/reducer.clear.js index 0a94b19..a0a148f 100644 --- a/src/reducers/reducer.clear.js +++ b/src/reducers/reducer.clear.js @@ -1,3 +1,3 @@ export const clearOutput = (state, action) => { - return { ...state, results: [], errors: {} }; + return { ...state, results: [], errors: {}, parseResults: '' }; } \ No newline at end of file diff --git a/src/reducers/reducer.latl.js b/src/reducers/reducer.latl.js index 39ab255..e783318 100644 --- a/src/reducers/reducer.latl.js +++ b/src/reducers/reducer.latl.js @@ -1,6 +1,6 @@ export const setLatl = (state, action) => { let latl = action.value; - return {...state, latl}; + return {...state, latl, parseResults: ''}; } const getOneToken = (latl, tokens) => { @@ -291,7 +291,6 @@ export const buildTree = tokens => { } const nodes = tokens.reduce(addToken, []); // return nodes - console.log(nodes) const tree = nodes.reduce(connectNodes, bareTree); return tree; } @@ -309,12 +308,10 @@ export const parseLatl = (state, action) => { const latl = state.latl; const AST = generateAST(latl); Object.entries(AST).forEach(([key, value]) => state[key] = value); - console.log(state) - console.log(AST) - return { ...state, parseResults: 'success' } + return { ...state, parseResults: 'latl parsed successfully', results:[] } } catch (e) { - return { ...state, errors: e} + return { ...state, parseResults: e} } } diff --git a/src/reducers/reducer.results.js b/src/reducers/reducer.results.js index e9e7b71..73557cd 100644 --- a/src/reducers/reducer.results.js +++ b/src/reducers/reducer.results.js @@ -221,7 +221,7 @@ const transformLexemeCoda = (newLexeme, pre, post, position, phoneme, index, lex if (!isEnvironmentBoundByRule([phoneme], position)) return [...newLexeme, phoneme]; const newPhoneme = transformPhoneme(phoneme, newFeatures[0], features); // if deletion occurs - if (!newPhoneme.grapheme) return [ ...newLexeme] ; + if (!newPhoneme || !newPhoneme.grapheme) return [ ...newLexeme] ; return [...newLexeme, newPhoneme]; } @@ -280,9 +280,9 @@ export const run = (state: stateType, action: resultsAction): stateType => { }, []); const results = passResults.map(stringifyResults); - return {...state, results, errors: {} } + return {...state, results, errors: {}, parseResults: '' } } catch (err) { console.log(err) - return {...state, errors: err, results:[] }; + return {...state, errors: err, results:[], parseResults: '' }; } } \ No newline at end of file