コード例 #1
0
ファイル: parser.go プロジェクト: ironbay/giraffe
func Parse(input string, options *ParseOptions) (*ast.Document, error) {
	source := ast.NewSource(input, "")
	parser, err := newParser(source, options)
	if err != nil {

	}
	return parseDocument(parser)
}
コード例 #2
0
ファイル: parser.go プロジェクト: ironbay/giraffe
func ParseValue(input string, options *ParseOptions) {
	source := ast.NewSource(input, "")
	parser, err := newParser(source, options)
	if err != nil {

	}
	return parseValueLiteral(parser)
}
コード例 #3
0
ファイル: lexer_test.go プロジェクト: ironbay/giraffe
func TestDollar(t *testing.T) {
	source := ast.NewSource("$", "")
	result, err := Lex(source)(-1)
	expect(t, err, result, DOLLAR, 0, 1, "")
}
コード例 #4
0
ファイル: lexer_test.go プロジェクト: ironbay/giraffe
func TestWhitespace(t *testing.T) {
	source := ast.NewSource("\n   foo   \n   ", "")
	result, err := Lex(source)(-1)
	expect(t, err, result, NAME, 4, 7, "foo")
}
コード例 #5
0
ファイル: lexer_test.go プロジェクト: ironbay/giraffe
func TestScience(t *testing.T) {
	source := ast.NewSource("123e+4", "")
	result, err := Lex(source)(-1)
	expect(t, err, result, FLOAT, 0, 6, "123e+4")
}
コード例 #6
0
ファイル: lexer_test.go プロジェクト: ironbay/giraffe
func TestBang(t *testing.T) {
	source := ast.NewSource("!", "")
	result, err := Lex(source)(-1)
	expect(t, err, result, BANG, 0, 1, "")
}
コード例 #7
0
ファイル: lexer_test.go プロジェクト: ironbay/giraffe
func TestNegative(t *testing.T) {
	source := ast.NewSource("-4", "")
	result, err := Lex(source)(-1)
	expect(t, err, result, INT, 0, 2, "-4")
}
コード例 #8
0
ファイル: lexer_test.go プロジェクト: ironbay/giraffe
func TestDecimal(t *testing.T) {
	source := ast.NewSource("0.123", "")
	result, err := Lex(source)(-1)
	expect(t, err, result, FLOAT, 0, 5, "0.123")
}
コード例 #9
0
ファイル: lexer_test.go プロジェクト: ironbay/giraffe
func TestSlashes(t *testing.T) {
	source := ast.NewSource("\"slashes \\\\ \\/\"", "")
	result, err := Lex(source)(-1)
	expect(t, err, result, STRING, 0, 15, "slashes \\ /")
}
コード例 #10
0
ファイル: lexer_test.go プロジェクト: ironbay/giraffe
func TestInt(t *testing.T) {
	source := ast.NewSource("4", "")
	result, err := Lex(source)(-1)
	expect(t, err, result, INT, 0, 1, "4")
}
コード例 #11
0
ファイル: lexer_test.go プロジェクト: ironbay/giraffe
func TestEscaped(t *testing.T) {
	source := ast.NewSource("\"escaped \\n\\r\\b\\t\\f\"", "")
	result, err := Lex(source)(-1)
	expect(t, err, result, STRING, 0, 20, "escaped \n\r\b\t\f")
}
コード例 #12
0
ファイル: lexer_test.go プロジェクト: ironbay/giraffe
func TestQuotes(t *testing.T) {
	source := ast.NewSource("\"quote \\\"\"", "")
	result, err := Lex(source)(-1)
	expect(t, err, result, STRING, 0, 10, "quote \"")
}
コード例 #13
0
ファイル: lexer_test.go プロジェクト: ironbay/giraffe
func TestWhitespaceString(t *testing.T) {
	source := ast.NewSource("\" white space \"", "")
	result, err := Lex(source)(-1)
	expect(t, err, result, STRING, 0, 15, " white space ")
}
コード例 #14
0
ファイル: lexer_test.go プロジェクト: ironbay/giraffe
func TestSimpleString(t *testing.T) {
	source := ast.NewSource("\"simple\"", "")
	result, err := Lex(source)(-1)
	expect(t, err, result, STRING, 0, 8, "simple")
}
コード例 #15
0
ファイル: lexer_test.go プロジェクト: ironbay/giraffe
func TestComments(t *testing.T) {
	source := ast.NewSource("#hello\nfoo#comment", "")
	result, err := Lex(source)(-1)
	expect(t, err, result, NAME, 7, 10, "foo")
}