parsers

package
v0.0.0-...-6a70844 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 5, 2018 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrInvalidHTMLFormat is invalid HTML format error
	ErrInvalidHTMLFormat = errors.New("invalid HTML format")
	// ErrSiteNotSupport is site not support error
	ErrSiteNotSupport = errors.New("site not support")
)
View Source
var (
	// ErrInvalidTemplate is invalid template error
	ErrInvalidTemplate = errors.New("invalid template")
)

Functions

func AddTask

func AddTask(task Task) error

AddTask add a ask with json format

func SetSourceDir

func SetSourceDir(srcDir string)

SetSourceDir set sources dir

func SetTemplatesDir

func SetTemplatesDir(tplDir string)

SetTemplatesDir set templates dir

func SetWorkingDir

func SetWorkingDir(workDir string)

SetWorkingDir set working dir

Types

type Codeforces

type Codeforces struct {
}

Codeforces is the Codeforces judger

func (*Codeforces) Name

func (j *Codeforces) Name() string

Name returns name of judger

func (*Codeforces) WriteTask

func (j *Codeforces) WriteTask(task Task) error

WriteTask write codeforces task

type CodeforcesParser

type CodeforcesParser struct {
}

CodeforcesParser parser for Codeforces

func (*CodeforcesParser) ParseContestFromHTML

func (*CodeforcesParser) ParseContestFromHTML(html string) (Contest, error)

ParseContestFromHTML parse Codeforces contest from html

func (*CodeforcesParser) ParseContestFromURL

func (*CodeforcesParser) ParseContestFromURL(url string) (Contest, error)

ParseContestFromURL parse Codeforces contest from url

func (*CodeforcesParser) ParseTaskFromHTML

func (*CodeforcesParser) ParseTaskFromHTML(html string) (*Task, error)

ParseTaskFromHTML parse Codeforces task from html

func (*CodeforcesParser) ParseTaskFromURL

func (*CodeforcesParser) ParseTaskFromURL(url string) (*Task, error)

ParseTaskFromURL parse Codeforces task from url

type Contest

type Contest interface {
	Name() string
	Tasks() []Task
}

Contest is the contest interface

type DataFormat

type DataFormat struct {
	Type     string
	FileName string `json:"fileName"`
	Pattern  string
}

DataFormat format of input or output data

type FromFileGenerator

type FromFileGenerator struct {
	// contains filtered or unexported fields
}

FromFileGenerator generates code from file templates

func (*FromFileGenerator) WriteTask

func (g *FromFileGenerator) WriteTask(writer io.Writer, task Task, tmplName string) error

WriteTask writes the generated code to writer

func (*FromFileGenerator) WriteTaskToString

func (g *FromFileGenerator) WriteTaskToString(task Task, tmplName string) (string, error)

WriteTaskToString returns generated code in string format

type FromMemoryGenerator

type FromMemoryGenerator struct {
	// contains filtered or unexported fields
}

FromMemoryGenerator generates code from parsed template

func (*FromMemoryGenerator) WriteTask

func (g *FromMemoryGenerator) WriteTask(writer io.Writer, task Task, tmplName string) error

WriteTask writes the generated code to writer

func (*FromMemoryGenerator) WriteTaskToString

func (g *FromMemoryGenerator) WriteTaskToString(task Task, tmplName string) (string, error)

WriteTaskToString returns generated code in string format

type Generator

type Generator interface {
	WriteTask(writer io.Writer, task Task, tmplName string) error
	WriteTaskToString(task Task, tmplName string) (string, error)
}

Generator is the code generator interface

func NewFromFileGenerator

func NewFromFileGenerator(judger Judger, tplDir string) Generator

NewFromFileGenerator returns new instance of FromFileGenerator

func NewFromMemoryGenerator

func NewFromMemoryGenerator(tmpl *template.Template) Generator

NewFromMemoryGenerator returns new instance of Generator

type Judger

type Judger interface {
	Name() string
	WriteTask(task Task) error
}

Judger judger interface

type Parser

type Parser interface {
	ParseTaskFromHTML(html string) (*Task, error)
	ParseTaskFromURL(url string) (*Task, error)
	ParseContestFromHTML(html string) (Contest, error)
	ParseContestFromURL(url string) (Contest, error)
}

Parser is the parser interface

func NewParser

func NewParser(site string) Parser

NewParser return new Parser instance depends on site

type Task

type Task struct {
	Site        string
	ID          string `json:"id"`
	Name        string
	Group       string
	URL         string `json:"url"`
	Input       DataFormat
	Output      DataFormat
	MemoryLimit int
	TimeLimit   int
	TestType    string `json:"testType"`
	Tests       []TestCase
	Dirs        []string
	Meta        map[string]interface{}
}

Task task in json format

type TestCase

type TestCase struct {
	Input  string `json:"input"`
	Output string `json:"output"`
}

TestCase struct

func NewTestCase

func NewTestCase(input, output string) *TestCase

NewTestCase create new TestCase with input and output

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL