@@ -18,7 +18,7 @@ var g = ohm.grammar(
1818 "=" | "<" | ">"
1919
2020 Attribute (an attribute) =
21- letter letter? letter?
21+ letter letter? letter? letter?
2222
2323 Value (a value) =
2424 "\'" alnum* "\'" -- string
@@ -89,8 +89,8 @@ s.addOperation(
8989 return comparator . sourceString ;
9090 } ,
9191
92- Attribute : function ( a , b , c ) {
93- return [ a . interpret ( ) , b . interpret ( ) , c . interpret ( ) ] . join ( '' ) ;
92+ Attribute : function ( a , b , c , d ) {
93+ return [ a . interpret ( ) , b . interpret ( ) , c . interpret ( ) , d . interpret ( ) ] . join ( '' ) ;
9494 } ,
9595
9696 Value : function ( value ) {
@@ -107,7 +107,8 @@ s.addOperation(
107107 } ,
108108
109109 Number : function ( n ) {
110- return parseFloat ( n . sourceString ) ;
110+ //return parseFloat(n.sourceString);
111+ return n . sourceString ;
111112 } ,
112113 Date : function ( _1 , year , _2 , month , _3 , day , _4 ) {
113114 return new Date ( year . interpret ( ) ,
@@ -313,17 +314,24 @@ export default class AcademicSubquery extends Morph {
313314 query = conjunction + "(" + left + ", " + right + ")" ;
314315 }
315316 } else {
316- var [ attr , comp , val ] = this . get ( '#inner' )
317- . querySelectorAll ( "span[name='queryPart']" )
318- . map ( e => e . textContent ) ;
319- if ( val )
320- val = val . slice ( 0 , val . length - 1 ) ; // remove last whitespace
321- // TODO: keep the '' when parsing query so that we don't have
322- // 3 spans here....
323- // OOODER ich lass das mit dem Edit Mode, dafür gibt's ja schon
324- // das input Feld
325- //query = attr + comp + "'" + val + "'";
326- query = attr + comp + val ;
317+ var innerSpan = this . get ( '#inner' ) ;
318+ if ( innerSpan ) {
319+ lively . notify ( "INNERSPAN" , innerSpan )
320+ var [ attr , comp , val ] = innerSpan
321+ . querySelectorAll ( "span[name='queryPart']" )
322+ . map ( e => e . textContent ) ;
323+ if ( val )
324+ val = val . slice ( 0 , val . length - 1 ) ; // remove last whitespace
325+ // TODO: keep the '' when parsing query so that we don't have
326+ // 3 spans here....
327+ // OOODER ich lass das mit dem Edit Mode, dafür gibt's ja schon
328+ // das input Feld
329+ //query = attr + comp + "'" + val + "'";
330+ if ( innerSpan . getAttribute ( "type" ) == "composite" )
331+ query = "Composite(" + attr + comp + val + ")" ;
332+ else
333+ query = attr + comp + val ;
334+ }
327335 }
328336
329337 return query
@@ -415,15 +423,18 @@ export default class AcademicSubquery extends Morph {
415423 span . appendChild ( edit ) ;
416424 break ;
417425 }
426+ span . setAttribute ( "type" , object . type ) ;
418427
419428 var queryElement = < div class = "dropTarget" > < b > { span } </ b > </ div > ;
420429
421430 return queryElement ;
422431 }
423432
424433 async livelyExample ( ) {
425- this . setQuery ( "And(Or(Y='1985', Y='2008'), Ti='disordered electronic systems')" )
426- //this.setQuery("And(O='abc', Y='1000')")
434+ //this.setQuery("Composite(AA.AuN=='susan t dumais')");
435+ this . setQuery ( "Composite(AA.AuId=2055148755)" )
436+ //this.setQuery("And(Or(Y=1985, Y=2008), Ti='disordered electronic systems')")
437+ //this.setQuery("And(O='abc', Y=1000)")
427438 //this.setQuery("Y='1000'")
428439 }
429440
0 commit comments