Skip to content

Instantly share code, notes, and snippets.

View LPTK's full-sized avatar

Lionel Parreaux LPTK

View GitHub Profile
@LPTK
LPTK / GenPattern
Created April 4, 2015 05:53
DSL for generic pattern matching
object GenPattern extends App {
abstract class TypeBase(val name: String)
trait Type[+T] { val base: TypeBase; val params: Seq[Type[_]]; override def toString = s"${base.name}[${params mkString ","}]" }
type Rep[+T] = Node[T]
trait Node[+T] { val typ: Type[T]; val args: Seq[_] }
@LPTK
LPTK / gist:43a71f055d1a59a5f845
Created December 4, 2015 16:43 — forked from VladUreche/gist:8396624
Scaladoc tutorial for docs.scala-lang.org, in a pitiful state

Scaladoc Developer Guide

Introduction

Scaladoc is the tool that enables developers to automatically generate documentation for their Scala (and Java) projects. It is Scala's equivalent of the widely-used Javadoc tool. This means that Javadoc (and even doxygen) users will be familiar with Scaladoc from day 1: for them, it is most beneficial to check out the Scaladoc/Javadoc comparison tables and if necessary, skim through this document to understand specific features.

The rest of this tutorial is aimed at developers new to Scaladoc and other similar tools. It assumes a basic understanding of the Scala language, which is necessary to follow the examples given throughout the tutorial. For the user perspective on the Scaladoc-generated documentation, such as finding a class, understanding the page layout, navigating through diagrams, please refer to the Scaladoc User Guide.

The tutorial will start by a short motivation and then will explain the main concept in Scaladoc: the doc comment.

Why document?

package ddbtoaster
import squid.utils._
import stagerwr2.compiler.Embedding
import Embedding.Predef._
import Embedding.Quasicodes._
import squid.ir.BottomUpTransformer
import squid.ir.FixPointRuleBasedTransformer
import squid.ir.FixPointTransformer
import squid.ir.RewriteAbort