[Ometa] OMeta# on Mono

Robert Krahn robert.krahn at student.hpi.uni-potsdam.de
Fri May 29 21:33:07 PDT 2009


Hi,

I'm trying to run Jeff Moser's OMeta# on Mono. Compiling  
OMetaSharp.dll and OMetaSharp.OMetaCS.dll works fine and the generated  
examples are running as well. However, when I try to parse even a  
simple OMeta grammar with no additional rules an exception is thrown.  
The stack trace is below. I have no experience with C# so any help is  
really appreciated.

Thanks,
Robert


Unhandled Exception: System.Reflection.TargetInvocationException:  
Exception has been thrown by the target of an invocation. --->  
System.InvalidProgramException: Invalid IL code in (wrapper runtime- 
invoke)  
OMetaSharp 
.OMetaParser:runtime_invoke_bool__this___OMetaStream 
`1<char>_OMetaList`1<HostExpression>&_OMetaStream`1<char>&  
(object,intptr,intptr,intptr): IL_0026: call      0x00000004


   at (wrapper managed-to-native)  
System.Reflection.MonoMethod:InternalInvoke  
(object,object[],System.Exception&)
   at System.Reflection.MonoMethod.Invoke (System.Object obj,  
BindingFlags invokeAttr, System.Reflection.Binder binder,  
System.Object[] parameters, System.Globalization.CultureInfo culture)  
[0x00000]
   --- End of inner exception stack trace ---
   at System.Reflection.MonoMethod.Invoke (System.Object obj,  
BindingFlags invokeAttr, System.Reflection.Binder binder,  
System.Object[] parameters, System.Globalization.CultureInfo culture)  
[0x00000]
   at System.Reflection.MethodBase.Invoke (System.Object obj,  
System.Object[] parameters) [0x00000]
   at  
OMetaSharp.OMeta`1+<TryGetMethod>c__AnonStorey6[System.Char].<>m__A  
(OMetaSharp.OMetaStream`1 inputStream, OMetaSharp.OMetaList`1& result,  
OMetaSharp.OMetaStream`1& modifiedStream) [0x00000]
   at  
OMetaSharp 
.OMetaBase`1[System.Char].OMetaSharp.IMetaRuleEvaluator<TInput>.Apply  
(OMetaSharp.Rule`1 rule, OMetaSharp.OMetaStream`1 inputStream,  
OMetaSharp.OMetaList`1& result, OMetaSharp.OMetaStream`1&  
modifiedStream) [0x00000]
   at OMetaSharp.OMeta`1[System.Char].FirstAndRest  
(OMetaSharp.OMetaStream`1 inputStream, OMetaSharp.OMetaList`1& result,  
OMetaSharp.OMetaStream`1& modifiedStream) [0x00000]
   at  
OMetaSharp 
.OMetaBase`1[System.Char].OMetaSharp.IMetaRuleEvaluator<TInput>.Apply  
(OMetaSharp.Rule`1 rule, OMetaSharp.OMetaStream`1 inputStream,  
OMetaSharp.OMetaList`1& result, OMetaSharp.OMetaStream`1&  
modifiedStream) [0x00000]
   at  
OMetaSharp 
.OMetaBase 
`1[System.Char].OMetaSharp.IMetaRuleEvaluator<TInput>.ApplyWithArgs  
(OMetaSharp.Rule`1 rule, OMetaSharp.OMetaStream`1 inputStream,  
OMetaSharp.OMetaList`1& result, OMetaSharp.OMetaStream`1&  
modifiedStream, OMetaSharp.OMetaList`1[] arguments) [0x00000]
   at OMetaSharp.OMetaParser+<TSName>c__AnonStorey2.<>m__C  
(OMetaSharp.OMetaStream`1 inputStream2, OMetaSharp.OMetaList`1&  
result2, OMetaSharp.OMetaStream`1& modifiedStream2) [0x00000]
   at  
OMetaSharp 
.OMetaBase`1[System.Char].OMetaSharp.IMetaRuleEvaluator<TInput>.Apply  
(OMetaSharp.Rule`1 rule, OMetaSharp.OMetaStream`1 inputStream,  
OMetaSharp.OMetaList`1& result, OMetaSharp.OMetaStream`1&  
modifiedStream) [0x00000]
   at OMetaSharp.OMetaParser.TSName (OMetaSharp.OMetaStream`1  
inputStream, OMetaSharp.OMetaList`1& result, OMetaSharp.OMetaStream`1&  
modifiedStream) [0x00000]
   at  
OMetaSharp 
.OMetaBase`1[System.Char].OMetaSharp.IMetaRuleEvaluator<TInput>.Apply  
(OMetaSharp.Rule`1 rule, OMetaSharp.OMetaStream`1 inputStream,  
OMetaSharp.OMetaList`1& result, OMetaSharp.OMetaStream`1&  
modifiedStream) [0x00000]
   at OMetaSharp.OMetaParser+<NamespacePart>c__AnonStorey1A.<>m__8D  
(OMetaSharp.OMetaStream`1 inputStream3, OMetaSharp.OMetaList`1&  
result3, OMetaSharp.OMetaStream`1& modifiedStream3) [0x00000]
   at  
OMetaSharp 
.OMetaBase`1[System.Char].OMetaSharp.IMetaRuleEvaluator<TInput>.Apply  
(OMetaSharp.Rule`1 rule, OMetaSharp.OMetaStream`1 inputStream,  
OMetaSharp.OMetaList`1& result, OMetaSharp.OMetaStream`1&  
modifiedStream) [0x00000]
   at  
OMetaSharp 
.OMetaBase`1[System.Char].OMetaSharp.IMetaRuleEvaluator<TInput>.Many1  
(OMetaSharp.Rule`1 rule, OMetaSharp.OMetaStream`1 inputStream,  
OMetaSharp.OMetaList`1& result, OMetaSharp.OMetaStream`1&  
modifiedStream) [0x00000]
   at OMetaSharp.OMetaParser+<NamespacePart>c__AnonStorey1A.<>m__33  
(OMetaSharp.OMetaStream`1 inputStream2, OMetaSharp.OMetaList`1&  
result2, OMetaSharp.OMetaStream`1& modifiedStream2) [0x00000]
   at  
OMetaSharp 
.OMetaBase`1[System.Char].OMetaSharp.IMetaRuleEvaluator<TInput>.Apply  
(OMetaSharp.Rule`1 rule, OMetaSharp.OMetaStream`1 inputStream,  
OMetaSharp.OMetaList`1& result, OMetaSharp.OMetaStream`1&  
modifiedStream) [0x00000]
   at OMetaSharp.OMetaParser.NamespacePart (OMetaSharp.OMetaStream`1  
inputStream, OMetaSharp.OMetaList`1& result, OMetaSharp.OMetaStream`1&  
modifiedStream) [0x00000]
   at  
OMetaSharp 
.OMetaBase`1[System.Char].OMetaSharp.IMetaRuleEvaluator<TInput>.Apply  
(OMetaSharp.Rule`1 rule, OMetaSharp.OMetaStream`1 inputStream,  
OMetaSharp.OMetaList`1& result, OMetaSharp.OMetaStream`1&  
modifiedStream) [0x00000]
   at OMetaSharp.OMetaParser+<Namespace>c__AnonStorey1B.<>m__90  
(OMetaSharp.OMetaStream`1 inputStream4, OMetaSharp.OMetaList`1&  
result4, OMetaSharp.OMetaStream`1& modifiedStream4) [0x00000]
   at  
OMetaSharp 
.OMetaBase`1[System.Char].OMetaSharp.IMetaRuleEvaluator<TInput>.Apply  
(OMetaSharp.Rule`1 rule, OMetaSharp.OMetaStream`1 inputStream,  
OMetaSharp.OMetaList`1& result, OMetaSharp.OMetaStream`1&  
modifiedStream) [0x00000]
   at  
OMetaSharp 
.OMetaBase`1[System.Char].OMetaSharp.IMetaRuleEvaluator<TInput>.Many1  
(OMetaSharp.Rule`1 rule, OMetaSharp.OMetaStream`1 inputStream,  
OMetaSharp.OMetaList`1& result, OMetaSharp.OMetaStream`1&  
modifiedStream) [0x00000]
   at OMetaSharp.OMetaParser+<Namespace>c__AnonStorey1B.<>m__8E  
(OMetaSharp.OMetaStream`1 inputStream3, OMetaSharp.OMetaList`1&  
result3, OMetaSharp.OMetaStream`1& modifiedStream3) [0x00000]
   at  
OMetaSharp 
.OMetaBase`1[System.Char].OMetaSharp.IMetaRuleEvaluator<TInput>.Apply  
(OMetaSharp.Rule`1 rule, OMetaSharp.OMetaStream`1 inputStream,  
OMetaSharp.OMetaList`1& result, OMetaSharp.OMetaStream`1&  
modifiedStream) [0x00000]
   at OMetaSharp.OMetaParser+<Namespace>c__AnonStorey1B.<>m__34  
(OMetaSharp.OMetaStream`1 inputStream2, OMetaSharp.OMetaList`1&  
result2, OMetaSharp.OMetaStream`1& modifiedStream2) [0x00000]
   at  
OMetaSharp 
.OMetaBase`1[System.Char].OMetaSharp.IMetaRuleEvaluator<TInput>.Or  
(OMetaSharp.OMetaStream`1 inputStream, OMetaSharp.OMetaList`1& result,  
OMetaSharp.OMetaStream`1& modifiedStream, OMetaSharp.Rule`1[] rules)  
[0x00000]
   at OMetaSharp.OMetaParser.Namespace (OMetaSharp.OMetaStream`1  
inputStream, OMetaSharp.OMetaList`1& result, OMetaSharp.OMetaStream`1&  
modifiedStream) [0x00000]
   at  
OMetaSharp 
.OMetaBase`1[System.Char].OMetaSharp.IMetaRuleEvaluator<TInput>.Apply  
(OMetaSharp.Rule`1 rule, OMetaSharp.OMetaStream`1 inputStream,  
OMetaSharp.OMetaList`1& result, OMetaSharp.OMetaStream`1&  
modifiedStream) [0x00000]
   at OMetaSharp.OMetaParser+<Grammar>c__AnonStorey1E.<>m__3B  
(OMetaSharp.OMetaStream`1 inputStream2, OMetaSharp.OMetaList`1&  
result2, OMetaSharp.OMetaStream`1& modifiedStream2) [0x00000]
   at  
OMetaSharp 
.OMetaBase`1[System.Char].OMetaSharp.IMetaRuleEvaluator<TInput>.Apply  
(OMetaSharp.Rule`1 rule, OMetaSharp.OMetaStream`1 inputStream,  
OMetaSharp.OMetaList`1& result, OMetaSharp.OMetaStream`1&  
modifiedStream) [0x00000]
   at OMetaSharp.OMetaParser.Grammar (OMetaSharp.OMetaStream`1  
inputStream, OMetaSharp.OMetaList`1& result, OMetaSharp.OMetaStream`1&  
modifiedStream) [0x00000]
   at  
OMetaSharp 
.OMetaBase`1[System.Char].OMetaSharp.IMetaRuleEvaluator<TInput>.Apply  
(OMetaSharp.Rule`1 rule, OMetaSharp.OMetaStream`1 inputStream,  
OMetaSharp.OMetaList`1& result, OMetaSharp.OMetaStream`1&  
modifiedStream) [0x00000]
   at OMetaSharp.OMeta`1[System.Char].GenericMatch  
(OMetaSharp.OMetaStream`1 inputStream, OMetaSharp.Rule`1 rule,  
OMetaSharp.OMetaList`1[] arguments, OMetaSharp.OMetaStream`1&  
modifiedStream) [0x00000]
   at OMetaSharp.OMeta`1[System.Char].GenericMatch  
(OMetaSharp.OMetaStream`1 inputStream, OMetaSharp.Rule`1 rule,  
OMetaSharp.OMetaList`1[] arguments) [0x00000]
   at OMetaSharp.OMeta`1[System.Char].Match (OMetaSharp.OMetaStream`1  
inputStream, OMetaSharp.Rule`1 rule) [0x00000]
   at OMetaSharp.Grammars.ParseWith[OMetaParser,Char]  
(OMetaSharp.OMetaStream`1 inputStream, System.Func`2 ruleFetcher)  
[0x00000]
   at OMetaSharp.Grammars.ParseWith[OMetaParser] (System.String input,  
System.Func`2 ruleFetcher) [0x00000]
   at  
OMetaSharp 
.Grammars 
.ParseGrammarThenOptimizeThenTranslate 
[OMetaParser,OMetaOptimizer,OMetaTranslator] (System.String  
grammarContents, System.Func`2 topParserRuleFetcher, System.Func`2  
topOptimizerRuleFetcher, System.Func`2 topTranslatorRuleFetcher)  
[0x00000]
   at Program.Main () [0x00000]



More information about the OMeta mailing list