コード例 #1
0
        public static Chr Parse(char[] buffer, int start, int length)
        {
            var unescaped = QStr.Unescape(buffer, start + 1, length - 2);

            Debug.Assert(unescaped.Length == 1);
            return(new Chr(unescaped[0]));
        }
コード例 #2
0
        public static Chr Parse(string text)
        {
            var unescaped = QStr.Unescape(text.ToCharArray(), 1, text.Length - 2);

            Debug.Assert(unescaped.Length == 1);
            return(new Chr(unescaped[0]));
        }
コード例 #3
0
        public CilDocumentSyntax Module(QStr moduleName)
        {
            if (moduleName != null)
            {
                this.module.Name = moduleName.Text;
            }

            return(this);
        }
コード例 #4
0
        public Piece Literal(QStr str)
        {
            var nodes = str.Text.Select(ch => CharSetNode.Create(IntSet.Of(ch)));

            return(new Piece
            {
                Node = AstNode.Cat(nodes)
            });
        }
コード例 #5
0
ファイル: Grammar.cs プロジェクト: sucaba/IronTextLibrary
        public IntSet Range(QStr charPairs)
        {
            var    intervals = new List <IntInterval>();
            string text      = charPairs.Text;
            int    len       = text.Length;

            if (len % 2 != 0)
            {
                throw new Exception("Invalid range pairs.");
            }

            for (int i = 0; i < len; i += 2)
            {
                intervals.Add(new IntInterval(text[i], text[i + 1]));
            }

            var cset = IntSet.Ranges(intervals.ToArray());

            return(cset);
        }
コード例 #6
0
 public Variant QuotedStringValue(QStr str)
 {
     return(new Variant(str.Text));
 }
コード例 #7
0
 public EmitSyntax Ldstr(QStr str)
 {
     il.Emit(OpCodes.Ldstr, str.Text);
     return(this);
 }
コード例 #8
0
 public WantBranch Literal(QStr literal)
 {
     currentAtoms.Add(literal);
     return(this);
 }
コード例 #9
0
ファイル: Grammar.cs プロジェクト: sucaba/IronTextLibrary
 public SreExpr LiteralMatch(QStr str)
 {
     return(new SreExpr {
         Node = new CatNode(str.Text.Select(ch => CharSetNode.Create(ch)))
     });
 }
コード例 #10
0
 public Stmt PrintStmt(QStr message)
 {
     return(null);
 }
コード例 #11
0
 public static CharEnumeration Parse(string text)
 {
     char[] chars = text.ToCharArray();
     return(new CharEnumeration(QStr.Unescape(chars, 1, chars.Length - 2)));
 }
コード例 #12
0
 public StxNode Leaf(QStr str)
 {
     return(new StxLeaf <QStr>(str));
 }
コード例 #13
0
 AssemblyRefSyntax AssemblyRefSyntax.Locale(QStr qstr)
 {
     throw new NotImplementedException();
 }
コード例 #14
0
 PInvAttrSyntax WantMethAttrThen <WantMethAttr> .BeginPinvokeimpl(QStr s)
 {
     throw new NotImplementedException();
 }
コード例 #15
0
 public double Eval(QStr str)
 {
     return(Language.Parse(this, str.Text).Result);
 }
コード例 #16
0
 public QStr SingleQuotedString(char[] buffer, int start, int length)
 {
     return(QStr.Parse(buffer, start, length));
 }
コード例 #17
0
ファイル: Grammar.cs プロジェクト: sucaba/IronTextLibrary
 public CSetSreExpr CharSet(QStr str)
 {
     return(CSet(IntSet.Of(str.Text)));
 }
コード例 #18
0
 public static CharEnumeration Parse(char[] buffer, int start, int length)
 {
     return(new CharEnumeration(QStr.Unescape(buffer, start + 1, length - 2)));
 }
コード例 #19
0
 public QStr Str(char[] buffer, int start, int length)
 {
     return(QStr.Parse(buffer, start, length));
 }