예제 #1
0
            public KeyToken(TermFlags flags = TermFlags.None) : base(Token.Value, Token.Value)
            {
                this.Flags |= flags;

                if (this.FlagIsSet(TermFlags.IsKeyword) && !Keywords.ContainsKey(this.Text))
                {
                    Keywords[this.Text] = this;
                }
            }
예제 #2
0
 public Terminal(string name, TokenCategory category, TermFlags flags)  : base(name)
 {
     Category    = category;
     this.Flags |= flags;
     if (Category == TokenCategory.Outline)
     {
         this.SetFlag(TermFlags.IsPunctuation);
     }
     OutputTerminal = this;
 }
예제 #3
0
        private static NonTerminal NonTerminal(string name, BnfExpression rule, TermFlags flags = TermFlags.None)
        {
            var nonTerminal = NonTerminal(name, rule, n => new ElementsHolder
            {
                DebugName = name,
                Elements  = n.Elements()
            });

            nonTerminal.SetFlag(flags);
            return(nonTerminal);
        }
예제 #4
0
 public void SetFlag(TermFlags flag, bool value)
 {
     if (value)
     {
         Flags |= flag;
     }
     else
     {
         Flags &= ~flag;
     }
 }
예제 #5
0
파일: Term.cs 프로젝트: carbon/Language
        public Term(string name, int id, TermFlags flags)
        {
            #region Preconditions

            if (name == null) throw new ArgumentNullException("name");

            #endregion

            this.id = id;
            this.name = name;
            this.flags = flags;
            this.lexeme = new Lexeme(this);
        }
예제 #6
0
 public CompoundTerminalBase(string name, TermFlags flags) : base(name)
 {
     SetFlag(flags);
     Escapes = GetDefaultEscapes();
 }
예제 #7
0
 public static bool IsSet(this TermFlags flags, TermFlags flag)
 {
     return((flags & flag) != 0);
 }
 public static bool IsSet(this TermFlags flags, TermFlags flag) {
   return (flags & flag) != 0;
 }
예제 #9
0
파일: TermInfo.cs 프로젝트: carbon/Language
 public TermInfo(TermFlags flags)
 {
     this.flags = flags;
 }
예제 #10
0
파일: TermInfo.cs 프로젝트: carbon/Language
 public void RemoveFlag(TermFlags flag)
 {
     flags &= ~flag;
 }
예제 #11
0
파일: TermInfo.cs 프로젝트: carbon/Language
 public void AddFlag(TermFlags flag)
 {
     flags |= flag;
 }
예제 #12
0
 public void SetFlag(TermFlags flag)
 {
     SetFlag(flag, true);
 }
예제 #13
0
 public bool FlagIsSet(TermFlags flag)
 {
     return((Flags & flag) != 0);
 }
예제 #14
0
파일: Extensions.cs 프로젝트: limeryl/vsLua
 public static bool IsSet(this TermFlags enumValue, TermFlags flag)
 {
     return((enumValue & flag) != 0);
 }
예제 #15
0
 public static bool IsSet(this TermFlags enumValue, TermFlags flag)
 {
     return (enumValue & flag) != 0;
 }
예제 #16
0
 public Terminal(string name, string errorAlias, TokenCategory category, TermFlags flags) : this(name, category, flags)
 {
     this.ErrorAlias = errorAlias;
 }
예제 #17
0
파일: TermInfo.cs 프로젝트: carbon/Language
 public void ChangeFlag(TermFlags flag, bool value)
 {
     if (value)  AddFlag(flag);
     else 		RemoveFlag(flag);
 }
예제 #18
0
파일: Term.cs 프로젝트: carbon/Language
 public Term(string name, TermFlags flags = TermFlags.None)
     : this(name, 0, flags)
 {
 }