[rules-dev] Drools syntax diagrams - redrawn

Anstis, Michael (M.) manstis1 at ford.com
Fri Sep 24 05:05:24 EDT 2010


Java allows confusing constructs too but they are left for the developer
to handle rather than imposed by the language specification:-
 
class Smurf {
 
    int a;
    int b;
 
    Smurf(int a, int b) {
        a = a;
        b = b;
    }
 
}


________________________________

	From: rules-dev-bounces at lists.jboss.org
[mailto:rules-dev-bounces at lists.jboss.org] On Behalf Of Mark Proctor
	Sent: 24 September 2010 00:46
	To: rules-dev at lists.jboss.org
	Subject: Re: [rules-dev] Drools syntax diagrams - redrawn
	
	
	yes, ? wasn't easy due to java and data munging would get messy
as we map between things.
	
	So we just left it as any valid java identifier, but using the $
prefix as a coding convention make it easier to differentiate fieldnames
and bindings
	Person( age : age )
	Person( age == age )
	 
	The above looks a little confusing compared to:
	Person( $age : age )
	Person( age == $age )
	
	Davide wants to enforce the $ prefix so that parsing can be
easier.
	
	Mark
	On 24/09/2010 00:31, Michael Neale wrote: 

		The $name: Pattern thing I am convinced is to do with
Mark's prior history of being abused by perl ;) 

		But the real reason is we wanted to use ?name: Pattern()
- using "?" like the clips lineage of languages - but IIRC even ilog
allows that. We wanted our labels to be compatible with java source code
- where $variable is a valid name (although no one actually uses it) and
?name is not. 

		So here we are ;)


		On Fri, Sep 24, 2010 at 12:29 AM, Greg Barton
<greg_barton at yahoo.com> wrote:
		

			Yes, and I don't think we want to take
readability cues from Perl. :)
			
			GreG

			On Sep 23, 2010, at 3:03, Wolfgang Laun
<wolfgang.laun at gmail.com> wrote:
			
			

				On 23 September 2010 09:31, Bruno Unna
<bruno.unna at gmail.com> wrote:
				

				FWIW: in Perl, there are both operators
as well (|| and 'or'). However, they are *not* exactly the same.
Although they can be used in any context to render a boolean expression,
their priority makes the difference. Taken from official documentation
(http://bit.ly/dgw4GT): 



				Low precedence "and", "or", "xor" were
introduced to permit "Perl poetry", or, more seriously, to
				permit control flow using a logical
expression, especially after function calls without parentheses. 
				   see Naples or die;  # same as:
see(Napes) || die(); but not: see(Naples || die() );
				
				No way this makes any sense in Drools.
				
				-W
				
				

				Binary "or" returns the logical
disjunction of the two surrounding expressions. It's equivalent to ||
except for the very low precedence. This makes it useful for control
flow.


				Nonetheless, it must be taken into
account that the distinction makes sense for a Perl programmer. For a
rules-writing guy (or girl) perhaps the distinction is extremely
obscure.

				Regards.
				




	
_______________________________________________
				rules-dev mailing list
				rules-dev at lists.jboss.org
	
https://lists.jboss.org/mailman/listinfo/rules-dev
				



			_______________________________________________
			rules-dev mailing list
			rules-dev at lists.jboss.org
	
https://lists.jboss.org/mailman/listinfo/rules-dev
			
			




		-- 
		Michael D Neale
		home: www.michaelneale.net
		blog: michaelneale.blogspot.com
		
		
		_______________________________________________
		rules-dev mailing list
		rules-dev at lists.jboss.org
		https://lists.jboss.org/mailman/listinfo/rules-dev


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-dev/attachments/20100924/ec1305bb/attachment.html 


More information about the rules-dev mailing list