ソースを参照

Updated language-select/ui, refactored transpile.ts and monadic-parser.ts

yakomaxa 2 年 前
コミット
cb0d988efc

+ 4 - 13
src/extensions/language-select/ui.tsx

@@ -15,30 +15,25 @@ import { CollapsableControls, CollapsableState } from '../../mol-plugin-ui/base'
 import { Button } from '../../mol-plugin-ui/controls/common';
 import { SelectionModeSvg } from '../../mol-plugin-ui/controls/icons';
 import { ParameterControls } from '../../mol-plugin-ui/controls/parameters';
-import { PluginContext } from '../../mol-plugin/context';
+//import { PluginContext } from '../../mol-plugin/context';
 //import { formatBytes } from '../../mol-util';
 import { ParamDefinition as PD } from '../../mol-util/param-definition';
 
-type ScriptFile = {
-}
 
-type ScriptLanguage = {
-}
+type ScriptLanguage = undefined;
 
 interface State {
     busy?: boolean
     languageValues: PD.Values<typeof ScriptImportParams>
-    importValues?: PD.Values<ImportParams>
     importParams?: ImportParams
     language?: ScriptLanguage
-    files?: ScriptFile[]
 }
 
 const ScriptImportParams = {
     language: PD.Text('', { description: 'Script Language' })
 };
 
-function createImportParams(files: ScriptFile[], plugin: PluginContext) {
+function createImportParams() {
     const params: PD.Params = {};
     let defaultType = '';
     return {
@@ -55,10 +50,8 @@ export class ScriptImportUI extends CollapsableControls<{}, State> {
             isCollapsed: true,
             brand: { accent: 'cyan', svg: SelectionModeSvg },
             languageValues: PD.getDefaultValues(ScriptImportParams),
-            importValues: undefined,
             importParams: undefined,
             language: undefined,
-            files: undefined,
         };
     }
     private loadLanguage = async () => {
@@ -78,8 +71,6 @@ export class ScriptImportUI extends CollapsableControls<{}, State> {
     }
     
         
-
-
     private renderLoadLanguage() {
         return <div style={{ marginBottom: 10 }}>
             <ParameterControls params={ScriptImportParams} values={this.state.languageValues} onChangeValues={this.languageParamsOnChange} isDisabled={this.state.busy} />
@@ -92,7 +83,7 @@ export class ScriptImportUI extends CollapsableControls<{}, State> {
    
     protected renderControls(): JSX.Element | null {
 	return <>
-	    {!this.state.language ? this.renderLoadLanguage() : null}
+	{!this.state.language ? this.renderLoadLanguage() : null}
 	{this.state.language ? this.renderLanguageInfo(this.state.language) : null}
 	</>;
     }

+ 17 - 1
src/mol-script/transpile.ts

@@ -1,3 +1,12 @@
+/**
+ * Copyright (c) 2018 mol* contributors, licensed under MIT, See LICENSE file for more info.
+ *
+ * @author Koya Sakuma
+ */
+/**
+ * Adapted from MolQL src/transpile.ts
+ */
+
 import Transpiler from './transpilers/transpiler'
 import _transpiler from './transpilers/all'
 const transpiler: {[index: string]: Transpiler} = _transpiler
@@ -5,8 +14,15 @@ const transpiler: {[index: string]: Transpiler} = _transpiler
 export function parse(lang: string, str: string) {
     try {
 	const query = transpiler[lang](str);
+	
+	console.log(str)
+//	console.log(util.inspect(query, {depth: 20, color: true}))
+	console.log('\n')
+	
 	return query;      
     } catch (e) {
-
+	console.log(str)
+	console.log(e.message)
+	console.log('\n')
     }
 }

+ 1 - 35
src/mol-util/monadic-parser.ts

@@ -2,6 +2,7 @@
  * Copyright (c) 2018 mol* contributors, licensed under MIT, See LICENSE file for more info.
  *
  * @author David Sehnal <david.sehnal@gmail.com>
+ * @author Koya Sakuma
  */
 
 /**
@@ -236,15 +237,6 @@ export namespace MonadicParser {
 
     export type Result<T> = Success<T> | Failure
 
-    //export function lookahead<A>(x: MonadicParser<A> | string | RegExp): MonadicParser<null> {
-    //export function seq(...parsers: MonadicParser<any>[]): MonadicParser<any[]> {
-    //export function seq<A, B, C>(a: MonadicParser<A>, b: MonadicParser<B>, c: MonadicParser<C>): MonadicParser<[A, B, C]>
-//        export function alt(...parsers: MonadicParser<any>[]): MonadicParser<any> {
- //       const numParsers = parsers.length;
-  //      if (numParsers === 0) {
-  //          return fail('zero alternates');
-//        }
-
     export function seqMap( a: MonadicParser<any>,b:MonadicParser<any>,c:any) {
 	var args = [].slice.call(arguments);
 	if (args.length === 0) {
@@ -267,28 +259,6 @@ export namespace MonadicParser {
         return language;
     }
 
-   
-    //    function seq() {
-    //var parsers = [].slice.call(arguments);
-//	var numParsers = parsers.length;
-//	for (var j = 0; j < numParsers; j += 1) {
-//	    assertParser(parsers[j]);
-//	}
-//	return Parsimmon(function(input, i) {
-//	    var result;
-//	    var accum = new Array(numParsers);
-//	    for (var j = 0; j < numParsers; j += 1) {
-    //		result = mergeReplies(parsers[j]._(input, i), result);
-    //if (!result.status) {
-//		    return result;
-//		}
-//		accum[j] = result.value;
-//		i = result.index;
-//	    }
-//	    return mergeReplies(makeSuccess(i, accum), result);
-//	});
-  //  }
-
     export function seq<A>(a: MonadicParser<A>): MonadicParser<[A]>
     export function seq<A, B>(a: MonadicParser<A>, b: MonadicParser<B>): MonadicParser<[A, B]>
     export function seq<A, B, C>(a: MonadicParser<A>, b: MonadicParser<B>, c: MonadicParser<C>): MonadicParser<[A, B, C]>
@@ -369,8 +339,6 @@ export namespace MonadicParser {
     }
 
    
-
-    //return new MonadicParser<any[]>((input, index) => {
     export function regexp(re: RegExp, group = 0) {
         const anchored = anchoredRegexp(re);
         const expected = '' + re;
@@ -518,8 +486,6 @@ export namespace MonadicParser {
     MonadicParser.of = succeed;
     MonadicParser.regex = regexp;
     MonadicParser.regexp = regexp;
-//    MonadicParser.regexp.lookahead = lookahead;
-    //MonadicParser.RegExp = regexp;
 }
 
 function seqPick(idx: number, ...parsers: MonadicParser<any>[]): MonadicParser<any> {