summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2006-03-07Slight optimization: allow for non-proc predicated for markup writers.Ludovic Courtes
* src/guile/skribilo/engine.scm (engine-add-writer!): Allow PRED to be `#f'. * src/guile/skribilo/writer.scm (make-writer-predicate): Likewise. (lookup-markup-writer)[matching-writer]: Likewise. git-archimport-id: lcourtes@laas.fr--2005-mobile/skribilo--devel--1.2--patch-43
2006-03-07Merge from lcourtes@laas.fr--2004-libreLudovic Courtes
Patches applied: * lcourtes@laas.fr--2004-libre/skribilo--devel--1.2 (patch 67-69) - Doc: undoed `patch-65'. - Removed the global engine table. - Inventory fix. git-archimport-id: lcourtes@laas.fr--2005-mobile/skribilo--devel--1.2--patch-42
2006-03-07Fixed `copy-engine' with respect to the writers optimization.Ludovic Courtes
Patches applied: * lcourtes@laas.fr--2004-libre/skribilo--devel--1.2 (patch 66) - Fixed `copy-engine' with respect to the writers optimization. git-archimport-id: lcourtes@laas.fr--2005-mobile/skribilo--devel--1.2--patch-41
2006-03-07Merge from lcourtes@laas.fr--2004-libreLudovic Courtes
Patches applied: * lcourtes@laas.fr--2004-libre/skribilo--devel--1.2 (patch 64-65) - Fixed tiny module loading/autoloading mistakes. - Doc: commented out code that uses processors to work around bug. git-archimport-id: lcourtes@laas.fr--2005-mobile/skribilo--devel--1.2--patch-40
2006-03-07Significantly optimized lookup of markup writers.Ludovic Courtes
Patches applied: * lcourtes@laas.fr--2004-libre/skribilo--devel--1.2 (patch 63) - Significantly optimized lookup of markup writers. git-archimport-id: lcourtes@laas.fr--2005-mobile/skribilo--devel--1.2--patch-39
2006-03-07Merge from lcourtes@laas.fr--2004-libreLudovic Courtes
Patches applied: * lcourtes@laas.fr--2004-libre/skribilo--devel--1.2 (patch 60-62) - Slightly optimized the resolution process (added `ast-resolved?'). - Various fixes in the documentation code. - Lout engine: use `push-default-engine' and `pop-default-engine'. git-archimport-id: lcourtes@laas.fr--2005-mobile/skribilo--devel--1.2--patch-38
2006-03-02Inventory fix.Ludovic Court`es
* doc/user/.arch-inventory (precious): More HTML files. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-69
2006-03-02Removed the global engine table.Ludovic Court`es
* src/guile/skribilo/engine.scm (*engines*): Removed. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-68
2006-03-02Doc: undoed `patch-65'.Ludovic Court`es
* doc/user/markup.skb: Undoed `patch-65'. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-67
2006-03-02Fixed `copy-engine' with respect to the writers optimization.Ludovic Court`es
* src/guile/skribilo/engine.scm (copy-engine): Fixed so that the `writers' hash table is actually copied. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-66
2006-03-01Doc: commented out code that uses processors to work around bug.Ludovic Court`es
* doc/user/markup.skb: Commented out inclusion of `document.skb' and `sectioning.skb'. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-65
2006-03-01Fixed tiny module loading/autoloading mistakes.Ludovic Court`es
* src/guile/skribilo/module.scm (%skribilo-user-imports): Added `(skribilo location)'. * src/guile/skribilo/output.scm: Fixed autoloading of `(skribilo engine)'. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-64
2006-03-01Significantly optimized lookup of markup writers.Ludovic Court`es
* src/guile/skribilo/engine.scm (<engine>)[writers]: Became a hash table (instead of a list). [free-writers]: New. (engine-add-writer!): Changed accordingly. * src/guile/skribilo/writer.scm (write-object): Renamed to `write'. (lookup-markup-writer): Rewritten according to the above changes. (markup-writer-get): Likewise. (markup-writer-get*): Likewise. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-63
2006-03-01Lout engine: use `push-default-engine' and `pop-default-engine'.Ludovic Court`es
* src/guile/skribilo/engine/lout.scm: Once `lout-engine' is defined, invoke `push-default-engine'. Invoke `pop-default-engine' at the end. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-62
2006-03-01Various fixes in the documentation code.Ludovic Court`es
* doc/skr/manual.skr: Fixed uses of `format'. * doc/user/document.skb (dummy-document-output): Fixed handling of non-list author. * doc/user/src/api2.skb: Fixed the title. ;-) * doc/user/src/bib1.sbib (bigloo): Added a year and author as expected by `bib5.skb'. * doc/user/user.skb (Introduction): Explicitly added `:file #f'. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-61
2006-02-28Slightly optimized the resolution process (added `ast-resolved?').Ludovic Courtes
Patches applied: * skribilo--devel--1.2 (patch 36-37) - Merge from lcourtes@laas.fr--2004-libre - Slightly optimized the resolution process (added `ast-resolved?'). git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-60
2006-02-28Slightly optimized the resolution process (added `ast-resolved?').Ludovic Courtes
* src/guile/skribilo/ast.scm (<ast>): Added a `resolved?' slot, with accessor `ast-resolved?'. * src/guile/skribilo/resolve.scm (do-resolve!)[<node>]: Check whether `ast-resolved?' is true and set it once it's resolved. git-archimport-id: lcourtes@laas.fr--2005-mobile/skribilo--devel--1.2--patch-37
2006-02-28Merge from lcourtes@laas.fr--2004-libreLudovic Courtes
Patches applied: * lcourtes@laas.fr--2004-libre/skribilo--devel--1.2 (patch 55-59) - Made `make-string-replace' faster. - `eq': Implemented the text-based markup writers. - `eq': Added the `:renderer' option to `eq'. Support `lout'. - Changed the way `slide' implementations are loaded. Doc is buildable now. - Doc: Added a chapter (stub) about the `eq' package. git-archimport-id: lcourtes@laas.fr--2005-mobile/skribilo--devel--1.2--patch-36
2006-02-27Doc: Added a chapter (stub) about the `eq' package.Ludovic Court`es
* doc/user/user.skb: Use `(skribilo package eq)'. Include `eq.skb'. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-59
2006-02-27Changed the way `slide' implementations are loaded. Doc is buildable now.Ludovic Court`es
* src/guile/skribilo/package/slide.scm: Change the initialization method for the engine-specific writers: don't rely on `autoload' which is too non-deterministic, use `resolve-module' instead. * src/guile/skribilo/package/slide/html.scm: Call `%slide-html-initialize!' from here. * src/guile/skribilo/package/slide/latex.scm: Likewise. * src/guile/skribilo/package/slide/lout.scm (%slide-lout-initialize!): Removed. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-58
2006-02-27`eq': Added the `:renderer' option to `eq'. Support `lout'.Ludovic Court`es
* src/guile/skribilo/package/eq.scm (eq): Added a `renderer' option. Modified the `eq' writer for `base'. (!=): Use the appropriate symbol. (~=): Likewise. (>=): Likewise. (<=): Likewise. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-57
2006-02-27`eq': Implemented the text-based markup writers.Ludovic Court`es
* src/guile/skribilo/package/eq.scm: Implemented the text-based markup writers for the `base' engine. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-56
2006-02-27Made `make-string-replace' faster.Ludovic Courtes
Patches applied: * skribilo--devel--1.2 (patch 34-35) - Merge from lcourtes@laas.fr--2004-libre - Made `make-string-replace' faster. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-55
2006-02-25Made `make-string-replace' faster.Ludovic Courtes
* src/guile/skribilo/runtime.scm (%make-general-string-replace): Use a hash table rather than a list. git-archimport-id: lcourtes@laas.fr--2005-mobile/skribilo--devel--1.2--patch-35
2006-02-21Merge from lcourtes@laas.fr--2004-libreLudovic Courtes
Patches applied: * lcourtes@laas.fr--2004-libre/skribilo--devel--1.2 (patch 41-54) - Merge from lcourtes@laas.fr--2005-mobile - More Skribe compatibility fixes (more exported bindings). - Implemented `lout-illustration' for non-Lout engines. - Created the `(skribilo utils files)' module. - Skribe reader: consider square brackets as delimiters. - `skribilo': do not catch all exceptions, let a stack trace be output intead. - Added the equation formatting package (unfinished, undocumented). - `eq' package: added the `script' markup. - Implemented `when-engine-is-loaded'. - Fixes for `when-engine-is-loaded'. - `slide' and `eq': moved engine-specific code in separate modules. - Lout engine: fixed use of `@Sym' so that it works fine within `@Eq'. - `eq': Added `eq:in', `eq:notin' and their Lout writers. - `eq': added the `apply' markup. git-archimport-id: lcourtes@laas.fr--2005-mobile/skribilo--devel--1.2--patch-34
2006-02-21`eq': added the `apply' markup.Ludovic Court`es
* src/guile/skribilo/package/eq.scm (%operators): Added `apply'. (eq:apply): New markup. * src/guile/skribilo/package/eq/lout.scm (eq:apply): New writer. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-54
2006-02-20`eq': Added `eq:in', `eq:notin' and their Lout writers.Ludovic Court`es
* src/guile/skribilo/package/eq.scm (%symbols): New. (make-fast-member-predicate): New. (known-operator?): New. (known-symbol?): New. (equation-markup?): New. (eq:symbols->strings): When EQUATION is a symbol, check whether it is KNOWN-SYMBOL?. (eq:in): New markup (eq:notin): New markup. * src/guile/skribilo/package/eq/lout.scm (binary-lout-markup-writer): New. (eq:in): New writer. (eq:notin): New writer. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-53
2006-02-20Lout engine: fixed use of `@Sym' so that it works fine within `@Eq'.Ludovic Court`es
* src/guile/skribilo/engine/lout.scm (lout-symbol-table): Take an additional SYM parameter. Use it instead of blindly using `@Sym'. (lout-engine): Use `{ Symbol Base } @Font @Char' instead of `@Sym'. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-52
2006-02-17`slide' and `eq': moved engine-specific code in separate modules.Ludovic Court`es
* src/guile/skribilo/package/slide.scm: Moved engine-specific code to `slide/ENGINE.scm'. * src/guile/skribilo/package/eq.scm: Likewise. * configure.ac: Produce the new Makefiles. * src/guile/skribilo/engine/lout.scm: Export more stuff. Moved the slide-related things out of here. * src/guile/skribilo/utils/compat.scm (skribe-load): Removed `call/cc' (not needed). git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-51
2006-02-17Fixes for `when-engine-is-loaded'.Ludovic Court`es
* src/guile/skribilo/engine.scm (consume-load-hook!): New. (when-engine-is-loaded): Call `consume-load-hook!' when `engine-loaded?' returns true. (lookup-engine): Use `consume-load-hook!'. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-50
2006-02-17Implemented `when-engine-is-loaded'.Ludovic Court`es
* src/guile/skribilo/engine.scm (engine-id->module-name): New. (engine-loaded?): New. (%engine-load-hook): New. (when-engine-is-loaded): New. (lookup-engine): Run the engine-load hook when available and consume it. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-49
2006-02-17`eq' package: added the `script' markup.Ludovic Court`es
* src/guile/skribilo/package/eq.scm (%operators): Added `script'. (eq:script): New. (eq:expt): Fixed wrong braces. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-48
2006-02-16Added the equation formatting package (unfinished, undocumented).Ludovic Court`es
* src/guile/skribilo/package/eq.scm: New. Taken from `lcourtes@laas.fr--2004-libre/skribe-eq--main--0.1--patch-2' and significantly improved. * src/guile/skribilo/package/Makefile.am (dist_guilemodule_DATA): Added `eq.scm'. * NEWS: Mention this new package. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-47
2006-02-16`skribilo': do not catch all exceptions, let a stack trace be output intead.Ludovic Court`es
* src/skribilo.in: Do not try to catch any exception. Thanks to Neil's `catch' patch, a backtrace now gets nicely printed. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-46
2006-02-15Skribe reader: consider square brackets as delimiters.Ludovic Court`es
* src/guile/skribilo/reader/skribe.scm (%make-skribe-reader): Use the `r6rs-keyword-*' and `r6rs-number' token readers so that square brackets are rightfully considered as delimiters. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-45
2006-02-14Created the `(skribilo utils files)' module.Ludovic Court`es
* src/guile/skribilo/package/slide.scm: Fixed calls to `format'. * src/guile/skribilo/runtime.scm: Use `(skribilo utils files)'. Use `file-suffix' and `file-prefix' instead of `suffix' and `prefix'. Removed local definition of `suffix'. * src/guile/skribilo/utils/compat.scm: Use `(skribilo utils files)'. Moved `file-suffix' and `file-prefix' there. * src/guile/skribilo/utils/files.scm: New. * src/guile/skribilo/utils/Makefile.am (dist_guilemodule_DATA): Added `files.scm'. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-44
2006-02-14Implemented `lout-illustration' for non-Lout engines.Ludovic Court`es
* src/guile/skribilo/engine/lout.scm (lout-illustration): Implemented for Guile and non-Lout engines. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-43
2006-02-14More Skribe compatibility fixes (more exported bindings).Ludovic Court`es
* src/guile/skribilo/color.scm: Use SRFI-60. (skribe-color->rgb): Use `bitwise-and' and `arithmetic-shift'. * src/guile/skribilo/engine/html.scm (html-markup-class): Made public. * src/guile/skribilo/module.scm (%skribilo-user-autoloads): Added `!lout', `!latex', `LaTeX', `TeX', `html-markup-class', `html-class', `html-width' as autoload triggers. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-42
2006-02-10Merge from lcourtes@laas.fr--2005-mobileLudovic Courtes
Patches applied: * lcourtes@laas.fr--2005-mobile/skribilo--devel--1.2 (patch 32-33) - Merge from lcourtes@laas.fr--2004-libre - Fixed syntax highlighting thanks to SILex. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-41
2006-02-10Fixed syntax highlighting thanks to SILex.Ludovic Courtes
* arch-config: New file. * src/guile/skribilo/coloring/c-lex.l.scm: New. * src/guile/skribilo/coloring/lisp-lex.l.scm: New. * src/guile/skribilo/coloring/xml-lex.l.scm: New. * doc/user/user.skb: Include `prgm.skb' (works now). * src/guile/skribilo/ast.scm: Export `node-body'. * src/guile/skribilo/coloring/Makefile.am (dist_guilemodule_DATA): Added the SILex-generated files. (%.l.scm): New rule. * src/guile/skribilo/coloring/lisp-lex.l: Use the SRFI-39 parameters. * src/guile/skribilo/coloring/lisp.scm: Use SRFI-39 parameters instead of fluids. Load `lisp-lex.l.scm'. * src/guile/skribilo/prog.scm: Autoload `ast' upon `node-body' too. (make-line-mark): Use `hash-set!'. (resolve-line): Use `hash-ref'. * src/guile/skribilo/source.scm (source-read-lines): Use `string-prefix-length' instead of `substring=?'. git-archimport-id: lcourtes@laas.fr--2005-mobile/skribilo--devel--1.2--patch-33
2006-02-10Merge from lcourtes@laas.fr--2004-libreLudovic Courtes
Patches applied: * lcourtes@laas.fr--2004-libre/skribilo--devel--1.2 (patch 37-40) - Merge from lcourtes@laas.fr--2005-mobile - First time the user manual is compiled to HTML. - Added support for subsections and subsubsections in the outline reader. - Outline reader: added support to parse lists. git-archimport-id: lcourtes@laas.fr--2005-mobile/skribilo--devel--1.2--patch-32
2006-02-06Outline reader: added support to parse lists.Ludovic Court`es
* src/guile/skribilo/reader/outline.scm (make-markup): New. (make-list-processor): New. (make-node-processor): Take a list of subnode procedures instead of a single procedure. (%list-processors): New. (%node-processors): Updated accordingly. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-40
2006-02-01Added support for subsections and subsubsections in the outline reader.Ludovic Court`es
* src/guile/skribilo/reader/outline.scm (make-node-processor): Consider the END-OF-NODE? case _after_ the SUBNODE case. (%node-processors): Added support for subsections and subsubsections. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-39
2006-01-31First time the user manual is compiled to HTML.Ludovic Courtes
* doc/skr/api.skr (make-engine?): Fixed. (make-engine-custom): Likewise. * doc/skr/manual.skr (the-index): Don't pass `:&skribe-eval-location'. * doc/user/emacs.skb: Fixed typo. * doc/user/htmle.skb: Documented the `file-name-proc' custom. * doc/user/package.skb: Fixed the `prgm' example there. * doc/user/skribe-config.skb: Commented out the `OPTIONS' section. * doc/user/skribec.skb: Likewise. * doc/user/slide.skb: Don't refer to HTML-ENGINE, use `find-engine' instead. * doc/user/src/slides.skb: Don't pass `:slide' to `toc'. * doc/user/toc.skb: Commented the `:subsubsection' argument. * doc/user/user.skb (Index): Set `:indent' to "Index". * src/guile/skribilo.scm (skribilo-options): Added `--image-path'. (skribilo): Handle it. * src/guile/skribilo/ast.scm (ast->file-location): Exported. * src/guile/skribilo/engine/base.scm (the-index): Don't pass `:&skribe-eval-location'. * src/guile/skribilo/engine/html.scm: Export `html-width' and `html-title-authors'. * src/guile/skribilo/engine/lout.scm (lout-width): Don't use `flonum?'. * src/guile/skribilo/evaluator.scm (load-document): Added `:allow-other-keys' so that the optional parameters may contain keywords, too. * src/guile/skribilo/package/slide.scm: Use `(skribilo engine html)'. * src/guile/skribilo/skribe/api.scm (toc): Added `subsubsection'. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-38
2006-01-31First time the user manual is compiled to HTML.Ludovic Courtes
* doc/skr/api.skr (make-engine?): Fixed. (make-engine-custom): Likewise. * doc/skr/manual.skr (the-index): Don't pass `:&skribe-eval-location'. * doc/user/emacs.skb: Fixed typo. * doc/user/htmle.skb: Documented the `file-name-proc' custom. * doc/user/package.skb: Fixed the `prgm' example there. * doc/user/skribe-config.skb: Commented out the `OPTIONS' section. * doc/user/skribec.skb: Likewise. * doc/user/slide.skb: Don't refer to HTML-ENGINE, use `find-engine' instead. * doc/user/src/slides.skb: Don't pass `:slide' to `toc'. * doc/user/toc.skb: Commented the `:subsubsection' argument. * doc/user/user.skb (Index): Set `:indent' to "Index". * src/guile/skribilo.scm (skribilo-options): Added `--image-path'. (skribilo): Handle it. * src/guile/skribilo/ast.scm (ast->file-location): Exported. * src/guile/skribilo/engine/base.scm (the-index): Don't pass `:&skribe-eval-location'. * src/guile/skribilo/engine/html.scm: Export `html-width' and `html-title-authors'. * src/guile/skribilo/engine/lout.scm (lout-width): Don't use `flonum?'. * src/guile/skribilo/evaluator.scm (load-document): Added `:allow-other-keys' so that the optional parameters may contain keywords, too. * src/guile/skribilo/package/slide.scm: Use `(skribilo engine html)'. * src/guile/skribilo/skribe/api.scm (toc): Added `subsubsection'. git-archimport-id: lcourtes@laas.fr--2005-mobile/skribilo--devel--1.2--patch-31
2006-01-25Merge from lcourtes@laas.fr--2005-mobileLudovic Courtes
Patches applied: * lcourtes@laas.fr--2005-mobile/skribilo--devel--1.2 (patch 29-30) - Merge from lcourtes@laas.fr--2004-libre - More progress towards a working user manual. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-37
2006-01-25More progress towards a working user manual.Ludovic Courtes
* doc/skr/api.skr (define-markup?): Support `define*' and `define*-public'. * doc/user/bib.skb: Commented out problematic `skribebibtex'-related things. * doc/user/lib.skb (skribe-load): Replaced by `load-document'. (skribe-load-options): Replaced by `*load-options*'. (skribe-path): Replaced by `*document-path*'. * src/guile/skribilo/coloring/lisp.scm (definition-search): Removed debugging statement. * src/guile/skribilo/engine.scm (find-engine): For documentation purposes, explicitly list all keyword parameters. * src/guile/skribilo/source.scm (source-read-lines): Start line numbers from 0. * src/guile/skribilo/utils/compat.scm (skribe-path-set!): New. (skribe-image-path-set!): New. (skribe-source-path-set!): New. (skribe-bib-path-set!): New. git-archimport-id: lcourtes@laas.fr--2005-mobile/skribilo--devel--1.2--patch-30
2006-01-24Merge from lcourtes@laas.fr--2004-libreLudovic Courtes
Patches applied: * lcourtes@laas.fr--2004-libre/skribilo--devel--1.2 (patch 31-36) - Merge from lcourtes@laas.fr--2005-mobile - Preliminary support for multiple reader front-ends. - First implementation of a reader for Emacs' outline syntax. - First working outline reader. - Changed the default Lout `document-type' to `doc'. - Fixed the HTML engine's `favicon' output. git-archimport-id: lcourtes@laas.fr--2005-mobile/skribilo--devel--1.2--patch-29
2006-01-24Fixed the HTML engine's `favicon' output.Ludovic Court`es
* src/guile/skribilo/engine/html.scm (&html-generic-header): When producing `&html-header-favicon', don't leave its body unspecified. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-36
2006-01-24Changed the default Lout `document-type' to `doc'.Ludovic Court`es
* src/guile/README: Updated. * src/guile/skribilo/engine/lout.scm: Change the default value of `document-type' to `doc'. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-35