示例#1
0
 private void DeclareTokens(PrecType prop, string kind, List <TokenInfo> list)
 {
     grammar.BumpPrec();
     foreach (TokenInfo info in list)
     {
         Token    token = (IsLitChar(info.name) ? Token.litchar : Token.ident);
         Terminal t     = grammar.LookupOrDefineTerminal(token, info.name, info.alias);
         if (prop != PrecType.token)
         {
             t.prec = new Precedence(prop, grammar.Prec);
         }
         if (!String.IsNullOrEmpty(kind))
         {
             t.kind = kind;
         }
     }
 }
 private void DeclareTokens(LexSpan span1, PrecType prop, string kind, List <TokenInfo> list)
 {
     grammar.BumpPrec();
     if (GPCG.ImportedTokens)
     {
         handler.ListError(span1, 81);
     }
     foreach (TokenInfo info in list)
     {
         Token    token = (IsLitChar(info.name) ? Token.litchar : Token.ident);
         Terminal t     = grammar.LookupOrDefineTerminal(token, info.name, info.alias, span1);
         if (prop != PrecType.token)
         {
             t.prec = new Precedence(prop, grammar.Prec);
         }
         if (!String.IsNullOrEmpty(kind))
         {
             t.kind = kind;
         }
     }
 }
示例#3
0
		internal Precedence(PrecType type, int prec)
		{
			this.type = type;
			this.prec = prec;
		}
示例#4
0
		public static int Check(Precedence p,PrecType t,int d) 
		{
			if (p==null)
				return 0;
			if (p.m_type==t)
				return p.m_prec;
			return Check(p.m_next,t,d+1);
		}
示例#5
0
		static int CheckType(Precedence p,PrecType t, int d) 
		{
			if (p==null) 
				return 0;
			if (p.m_type==t || (p.m_type<=PrecType.nonassoc && t<=PrecType.nonassoc))
				return p.m_prec;
			return Check(p.m_next,t, d+1);
		}
示例#6
0
		public Precedence(PrecType t,int p,Precedence next) 
		{
			if (CheckType(next,t,0)!=0)
				Console.WriteLine("redeclaration of precedence");
			m_next = next; m_type = t; m_prec = p;
		}
示例#7
0
文件: Precedence.cs 项目: kzyg/spark
 internal Precedence(PrecType type, int prec)
 {
     this.type = type;
     this.prec = prec;
 }
示例#8
0
 public Precedence(PrecType type, int prec)
 {
     this.type = type;
     this.prec = prec;
 }
示例#9
0
 public Precedence(PrecType type, int prec)
 {
     this.type = type;
     this.prec = prec;
 }