From bc79986dd28443db86e7f7434803b08ce2e2454b Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Sun, 6 Feb 2022 23:02:43 +0100 Subject: [PATCH] now supporting tidal syntax directly --- repl/src/App.tsx | 26 ++++++++++++++++++++++++-- repl/src/CodeMirror.tsx | 1 + repl/src/parse.ts | 2 +- 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/repl/src/App.tsx b/repl/src/App.tsx index 5d90b2be..52d8bf82 100644 --- a/repl/src/App.tsx +++ b/repl/src/App.tsx @@ -24,6 +24,7 @@ synth.set({ }); function App() { + const [mode, setMode] = useState('javascript'); const [code, setCode] = useState(tetrisHaskell); const [log, setLog] = useState(''); const logBox = useRef(); @@ -64,7 +65,17 @@ function App() { // parse pattern when code changes useEffect(() => { try { - const _pattern = parse(code); + let _pattern; + try { + _pattern = h(code); + setMode('pegjs'); // haskell mode does not recognize quotes, pegjs looks ok by accident.. + // console.log('h _pattern', _pattern); + } catch (err) { + setMode('javascript'); + // code is not haskell like + _pattern = parse(code); + // console.log('not haskell..', _pattern); + } setPattern(_pattern); // cycle.query(cycle.activeCycle()); // reschedule active cycle setError(undefined); @@ -88,6 +99,11 @@ function App() {
{ setLog((log) => log + `${log ? '\n\n' : ''}✏️ edit\n${code}\n${value}`); setCode(value); @@ -110,7 +126,13 @@ function App() { > {cycle.started ? 'pause' : 'play'} -